Versuchsfolge und Algorithmus zu METHINKS IT IS LIKE A WEASEL

Eine 248-fache Versuchsfolge, wenn man bei jedem Durchgang einen Buchstaben aus 27 zulässt:

000: NDQVEPKJGPAEDALWNC_APBUAZGMI
001: JPIRWXKMGDYLDLNV[AOL[R[NCVID
002: KLYE[TKEFSJEUNVOXWALWJJYGYQO
003: FSPFZSKMEKM[LLAKHBBXCVLIOQUZ
004: TYPUYTKHSIFUIEQDX[BMFGXHFFFU
005: PZSPQRKMWIIHINGYJAPIBKKFMB_B
006: IUPNPEKUCIXPIEBKYQPVC[A[J_SA
007: GSUPMNKHPIFJIQXRIEKV_DOIVVQB
008: YVVHZNKUEITKIIZJIXCFVBHSUJAT
009: XLQHVNKSIITIIYXMIAOVIUSIZQGT
010: AWKHANKSBITHITMUIA_KYGUBBJUD
011: _NVH[NKSAITBIUQSINCQXUHLULQW
012: NKKHWNKSWITVIEN[IGLIZAGVZWNC
013: CTFHBNKSHITEI_OOIMAYKKAUPCR[
014: YG_HANKSTITIIOJBILCIOBFCFITY
015: XFQHSNKSLITKICROIYWOVQRSTEJQ
016: FCRHVNKSLITIITTPINPBDLBFLPTC
017: FAKHGNKSPITRIOYJILIRIDKCEFMA
018: F[VHNNKSTITYIZNKIHBQYFZDCRWF
019: _VCHMNKSIITVILTEIQB[CBMUBKAQ
020: DUIHTNKSBITGIFFHIXRDCDJDBLYF
021: XGEHRNKSCITAITLOITYOQIQZCYWN
022: BRFHDNKSAITDIUQNIGABQYLBCDV[
023: OQGHJNKSTITGICWLIALAIEQWGRYA
024: OPYHXNKSWITJIOGLICSWZOYSCKVY
025: YLIHSNKSXIT[IVALIUCKOIBSTC[L
026: DGXHZNKSZITYIXJLIXUNGHTNPHAL
027: YUQHJNKSAITGIHQLIZVRJKWXBMFL
028: IJ[HUNKSOITKIZYLIHUCQWWNCKOL
029: GLXHUNKSWITEIHVLICNLKTWRUBVL
030: HXGH_NKSRITAIDQLIQE[KJWZZYSL
031: ERCHQNKSKITJIXTLIZEJIMWXLVDL
032: MTRHONKSYITYIUKLIBELSQWS_YHL
033: MVQHKNKSDITKIMHLILEELWWSVMYL
034: M_KHPNKSJITMIWXLITEYBVWKVYWL
035: MUOHRNKSHITVITPLIHEUCXWHHIXL
036: MKRHGNKSJITNIEKLICEDCOWZUQWL
037: MYRH_NKSXITLIJHLIFEF_XWBXOUL
038: MGJHJNKSNITIIEDLICEFYVWKTN_L
039: MIQHZNKSPITDIT[LIMEYOPWTEUYL
040: MXFHINKSOITOIBPLIPEDEVWRCCVL
041: MNDHINKSPIT_IIULITENAGWSR[QL
042: MFQHINKSWIT_IZULINESAAWWMLDL
043: MLCHINKSOIT_IDULIGETAVWKZHJL
044: MIPHINKSJIT_IKSLIJERAWWL_IKL
045: MJSHINKSBIT_IAJLIJENAWWY[XDL
046: MZLHINKS[IT_ITVLIJEDAOWKKVOL
047: MYRHINKSZIT_IPLLIIEGAYWCV[SL
048: MDRHINKSNIT_IXRLIJEZAEWEUAML
049: MWDHINKSEIT_IMNLIIECAJWEKKCL
050: M[UHINKSAIT_IJDLIZESASWEETWL
051: MHXHINKSRIT_IEALILEZARWEQVOL
052: MDSHINKSIIT_IFVLIAENAEWENLEL
053: MXMHINKSLIT_IS_LIIENAQWERFEL
054: MPOHINKSZIT_IS_LIIEJACWEWNEL
055: MPHHINKSZIT_IS_LIJEYAEWE_FEL
056: MKQHINKSHIT_IS_LIXEDAIWEKCEL
057: MFHHINKSGIT_IS_LIPETAFWELGEL
058: MENHINKSQIT_IS_LISEHAHWEJUEL
059: MESHINKSQIT_IS_LIBEQADWEGLEL
060: ME_HINKSZIT_IS_LIJETAMWEPPEL
061: MEUHINKSHIT_IS_LIOENAUWEJPEL
062: MEBHINKSRIT_IS_LIJEYALWEREEL
063: MEBHINKSEIT_IS_LI_EUASWELZEL
064: MEXHINKSRIT_IS_LISEAANWENJEL
065: MEPHINKSCIT_IS_LIAEDAPWEMFEL
066: MECHINKSNIT_IS_LIPEJAJWEUXEL
067: MEMHINKS[IT_IS_LICETA[WEYJEL
068: MEZHINKSKIT_IS_LILEQABWEUREL
069: MEIHINKSEIT_IS_LIWEJAXWEUTEL
070: MEDHINKSJIT_IS_LIAEYARWEPDEL
071: MEJHINKSGIT_IS_LIJEHATWEVZEL
072: MEFHINKSHIT_IS_LISEYATWEQFEL
073: MECHINKS_IT_IS_LITEGAWWELSEL
074: MEYHINKS_IT_IS_LIPEHA[WESSEL
075: MEQHINKS_IT_IS_LIKEOAWWE[SEL
076: MEZHINKS_IT_IS_LIKEWAYWEZSEL
077: ME[HINKS_IT_IS_LIKELAOWEHSEL
078: MENHINKS_IT_IS_LIKEIAPWEGSEL
079: MENHINKS_IT_IS_LIKEBANWELSEL
080: MERHINKS_IT_IS_LIKEWATWECSEL
081: MERHINKS_IT_IS_LIKEYATWEVSEL
082: MERHINKS_IT_IS_LIKEBAAWEXSEL
083: MEZHINKS_IT_IS_LIKEUAJWEUSEL
084: MEYHINKS_IT_IS_LIKEDAMWEBSEL
085: MEIHINKS_IT_IS_LIKEJAXWECSEL
086: MEQHINKS_IT_IS_LIKEHAWWEWSEL
087: MESHINKS_IT_IS_LIKEOAXWEQSEL
088: MEYHINKS_IT_IS_LIKEKAEWESSEL
089: MEGHINKS_IT_IS_LIKEFAMWENSEL
090: MESHINKS_IT_IS_LIKEHAGWESSEL
091: MECHINKS_IT_IS_LIKEMAVWEYSEL
092: MEZHINKS_IT_IS_LIKEMACWEFSEL
093: MEUHINKS_IT_IS_LIKEGALWEMSEL
094: MEJHINKS_IT_IS_LIKEOAPWEGSEL
095: MESHINKS_IT_IS_LIKEXAAWETSEL
096: MESHINKS_IT_IS_LIKEQAUWEBSEL
097: MEQHINKS_IT_IS_LIKELAVWEUSEL
098: MEJHINKS_IT_IS_LIKEXANWEPSEL
099: MEGHINKS_IT_IS_LIKEJAWWENSEL
100: MEZHINKS_IT_IS_LIKEEAYWEZSEL
101: MESHINKS_IT_IS_LIKEZAXWEKSEL
102: MESHINKS_IT_IS_LIKEIAYWEASEL
103: MEXHINKS_IT_IS_LIKEVARWEASEL
104: MEVHINKS_IT_IS_LIKEYAWWEASEL
105: MERHINKS_IT_IS_LIKEVAEWEASEL
106: MEIHINKS_IT_IS_LIKEIAQWEASEL
107: MEPHINKS_IT_IS_LIKEEA[WEASEL
108: MECHINKS_IT_IS_LIKEWAGWEASEL
109: MEEHINKS_IT_IS_LIKEOAWWEASEL
110: MENHINKS_IT_IS_LIKEDAWWEASEL
111: MENHINKS_IT_IS_LIKEFAYWEASEL
112: MEYHINKS_IT_IS_LIKENAZWEASEL
113: MEBHINKS_IT_IS_LIKERATWEASEL
114: MECHINKS_IT_IS_LIKEIAWWEASEL
115: MELHINKS_IT_IS_LIKEIA[WEASEL
116: MELHINKS_IT_IS_LIKEJARWEASEL
117: METHINKS_IT_IS_LIKEAAFWEASEL
118: METHINKS_IT_IS_LIKELAWWEASEL
119: METHINKS_IT_IS_LIKETAHWEASEL
120: METHINKS_IT_IS_LIKEZAKWEASEL
121: METHINKS_IT_IS_LIKECANWEASEL
122: METHINKS_IT_IS_LIKESAYWEASEL
123: METHINKS_IT_IS_LIKEJARWEASEL
124: METHINKS_IT_IS_LIKEWADWEASEL
125: METHINKS_IT_IS_LIKEAASWEASEL
126: METHINKS_IT_IS_LIKERAEWEASEL
127: METHINKS_IT_IS_LIKESAPWEASEL
128: METHINKS_IT_IS_LIKEPAUWEASEL
129: METHINKS_IT_IS_LIKEXAFWEASEL
130: METHINKS_IT_IS_LIKEIAZWEASEL
131: METHINKS_IT_IS_LIKEMAOWEASEL
132: METHINKS_IT_IS_LIKEGASWEASEL
133: METHINKS_IT_IS_LIKEDAEWEASEL
134: METHINKS_IT_IS_LIKEYAFWEASEL
135: METHINKS_IT_IS_LIKEBAYWEASEL
136: METHINKS_IT_IS_LIKEEAFWEASEL
137: METHINKS_IT_IS_LIKEDAWWEASEL
138: METHINKS_IT_IS_LIKECAJWEASEL
139: METHINKS_IT_IS_LIKEAAMWEASEL
140: METHINKS_IT_IS_LIKEPAFWEASEL
141: METHINKS_IT_IS_LIKEVADWEASEL
142: METHINKS_IT_IS_LIKETAKWEASEL
143: METHINKS_IT_IS_LIKESAWWEASEL
144: METHINKS_IT_IS_LIKEAAQWEASEL
145: METHINKS_IT_IS_LIKEZACWEASEL
146: METHINKS_IT_IS_LIKEFARWEASEL
147: METHINKS_IT_IS_LIKEMADWEASEL
148: METHINKS_IT_IS_LIKEWAWWEASEL
149: METHINKS_IT_IS_LIKEXAJWEASEL
150: METHINKS_IT_IS_LIKEYAHWEASEL
151: METHINKS_IT_IS_LIKEPAFWEASEL
152: METHINKS_IT_IS_LIKETAGWEASEL
153: METHINKS_IT_IS_LIKEUAVWEASEL
154: METHINKS_IT_IS_LIKE[AQWEASEL
155: METHINKS_IT_IS_LIKELAKWEASEL
156: METHINKS_IT_IS_LIKEGAWWEASEL
157: METHINKS_IT_IS_LIKEHAVWEASEL
158: METHINKS_IT_IS_LIKENAWWEASEL
159: METHINKS_IT_IS_LIKEDA[WEASEL
160: METHINKS_IT_IS_LIKEEAOWEASEL
161: METHINKS_IT_IS_LIKECABWEASEL
162: METHINKS_IT_IS_LIKEDAHWEASEL
163: METHINKS_IT_IS_LIKEYANWEASEL
164: METHINKS_IT_IS_LIKEGAWWEASEL
165: METHINKS_IT_IS_LIKEIATWEASEL
166: METHINKS_IT_IS_LIKETAEWEASEL
167: METHINKS_IT_IS_LIKEWANWEASEL
168: METHINKS_IT_IS_LIKELAEWEASEL
169: METHINKS_IT_IS_LIKEZAGWEASEL
170: METHINKS_IT_IS_LIKEQAYWEASEL
171: METHINKS_IT_IS_LIKECAXWEASEL
172: METHINKS_IT_IS_LIKEPAQWEASEL
173: METHINKS_IT_IS_LIKEMAPWEASEL
174: METHINKS_IT_IS_LIKEFATWEASEL
175: METHINKS_IT_IS_LIKEPAJWEASEL
176: METHINKS_IT_IS_LIKEWAEWEASEL
177: METHINKS_IT_IS_LIKEJAZWEASEL
178: METHINKS_IT_IS_LIKENAAWEASEL
179: METHINKS_IT_IS_LIKEKADWEASEL
180: METHINKS_IT_IS_LIKEFAIWEASEL
181: METHINKS_IT_IS_LIKENADWEASEL
182: METHINKS_IT_IS_LIKERABWEASEL
183: METHINKS_IT_IS_LIKEKAHWEASEL
184: METHINKS_IT_IS_LIKEAARWEASEL
185: METHINKS_IT_IS_LIKEUACWEASEL
186: METHINKS_IT_IS_LIKEGAJWEASEL
187: METHINKS_IT_IS_LIKEOAGWEASEL
188: METHINKS_IT_IS_LIKEKAGWEASEL
189: METHINKS_IT_IS_LIKEKAJWEASEL
190: METHINKS_IT_IS_LIKECAEWEASEL
191: METHINKS_IT_IS_LIKEPAKWEASEL
192: METHINKS_IT_IS_LIKEVAEWEASEL
193: METHINKS_IT_IS_LIKETATWEASEL
194: METHINKS_IT_IS_LIKEOA[WEASEL
195: METHINKS_IT_IS_LIKELAKWEASEL
196: METHINKS_IT_IS_LIKEOA[WEASEL
197: METHINKS_IT_IS_LIKELANWEASEL
198: METHINKS_IT_IS_LIKEYADWEASEL
199: METHINKS_IT_IS_LIKESAYWEASEL
200: METHINKS_IT_IS_LIKEHAJWEASEL
201: METHINKS_IT_IS_LIKEFAGWEASEL
202: METHINKS_IT_IS_LIKEFADWEASEL
203: METHINKS_IT_IS_LIKEGA[WEASEL
204: METHINKS_IT_IS_LIKEMAJWEASEL
205: METHINKS_IT_IS_LIKEDABWEASEL
206: METHINKS_IT_IS_LIKEOAJWEASEL
207: METHINKS_IT_IS_LIKEQAMWEASEL
208: METHINKS_IT_IS_LIKEWAEWEASEL
209: METHINKS_IT_IS_LIKEHAGWEASEL
210: METHINKS_IT_IS_LIKENAJWEASEL
211: METHINKS_IT_IS_LIKENASWEASEL
212: METHINKS_IT_IS_LIKEAAMWEASEL
213: METHINKS_IT_IS_LIKEEAUWEASEL
214: METHINKS_IT_IS_LIKEWAMWEASEL
215: METHINKS_IT_IS_LIKEJAWWEASEL
216: METHINKS_IT_IS_LIKEAAXWEASEL
217: METHINKS_IT_IS_LIKEIAQWEASEL
218: METHINKS_IT_IS_LIKEUAJWEASEL
219: METHINKS_IT_IS_LIKEWALWEASEL
220: METHINKS_IT_IS_LIKEOAQWEASEL
221: METHINKS_IT_IS_LIKERAPWEASEL
222: METHINKS_IT_IS_LIKEUAKWEASEL
223: METHINKS_IT_IS_LIKEGAAWEASEL
224: METHINKS_IT_IS_LIKETAYWEASEL
225: METHINKS_IT_IS_LIKE_AMWEASEL
226: METHINKS_IT_IS_LIKE_ATWEASEL
227: METHINKS_IT_IS_LIKE_AGWEASEL
228: METHINKS_IT_IS_LIKE_AFWEASEL
229: METHINKS_IT_IS_LIKE_ALWEASEL
230: METHINKS_IT_IS_LIKE_AMWEASEL
231: METHINKS_IT_IS_LIKE_ALWEASEL
232: METHINKS_IT_IS_LIKE_AUWEASEL
233: METHINKS_IT_IS_LIKE_AUWEASEL
234: METHINKS_IT_IS_LIKE_ARWEASEL
235: METHINKS_IT_IS_LIKE_AHWEASEL
236: METHINKS_IT_IS_LIKE_AXWEASEL
237: METHINKS_IT_IS_LIKE_AKWEASEL
238: METHINKS_IT_IS_LIKE_AAWEASEL
239: METHINKS_IT_IS_LIKE_AZWEASEL
240: METHINKS_IT_IS_LIKE_AEWEASEL
241: METHINKS_IT_IS_LIKE_ADWEASEL
242: METHINKS_IT_IS_LIKE_AFWEASEL
243: METHINKS_IT_IS_LIKE_AGWEASEL
244: METHINKS_IT_IS_LIKE_AUWEASEL
245: METHINKS_IT_IS_LIKE_ABWEASEL
246: METHINKS_IT_IS_LIKE_AMWEASEL
247: METHINKS_IT_IS_LIKE_ASWEASEL
248: METHINKS_IT_IS_LIKE_A_WEASEL

Versuchsergebnisse:

Ich habe die angegebenen Zeichenfolgen jeweils 1000 mal generiert. Wie viele Versuche ich dabei mindestens, höchstens und durchschnittlich benötigte, geht aus den Angaben unter den jeweiligen Zeichenfolgen hervor:

METHINKS_IT_IS_LIKE_A_WEASEL
Minimal:  46
Maximal: 592
Schnitt: 137
METHINKS_IT_IS
Minimal:  23
Maximal: 624
Schnitt: 105
METH
Minimal:   4
Maximal: 217
Schnitt:  55

Und hier der Algorithmus in VB.Net:

Private Sub Dawkins()
   Dim s As String  ' Versuchs-Zeichenfolge
   Dim r As String  ' Zufalls-Zeichen
   Dim i As Integer ' Laufvariable
   Dim n As Integer ' Versuchsnummer
   ' Die Steuerelemente:
   ' txtErgebnis - Eine TextBox mit Multiline-Eigenschaft = True
   ' txtSatz     - Eine TextBox mit der Text-Eigenschaft "METHINKS_IT_IS_LIKE_A_WEASEL"
   Randomize()
   txtErgebnis.Text = ""
   s = ""
   ' Ausgangs-Zeichenfolge erstellen
   For i = 1 To Len(txtSatz.Text)
      ' Zufallszeichen generieren
      r = Chr(64 + 27 * Rnd(1))
      If r = "@" Then r = "_"
      s += r
   Next
   txtErgebnis.Text += n.ToString("000") + ": " + s + Chr(13) + Chr(10)
   ' Optimierungs-Schleife
   Do While s <> txtSatz.Text ' Wiederholen bis die Zeichenfolgen übereinstimmen
      For i = 1 To Len(txtSatz.Text) ' Alle Buchstaben durchgehen
         If Mid(s, i, 1) <> Mid(txtSatz.Text, i, 1) Then
            ' Zufallszeichen generieren
            r = Chr(64 + 27 * Rnd(1))
            If r = "@" Then r = "_"
            ' Buchstabe ersetzen
            s = s.Remove(i - 1, 1)
            s = s.Insert(i - 1, r)
         End If
      Next
      n += 1 ' nächster Versuch
      txtErgebnis.Text += n.ToString("000") + ": " + s + Chr(13) + Chr(10)
   Loop
End Sub

Es ist zu beachten, dass die gewünschte Zeichenfolge von Anfang an bekannt sein muss! Der Algorithmus erzeugt also nichts Neues.