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.