Krypto

Korsord (Krypto)

Alltför många websajter har den töntiga länken ”Lösningar” eller ”Solutions”, som oftast leder till nån sida med massa självförhärligande nonsens. Så icke hos mig – här får du faktiskt lösningar !

Tidsfördriv

Korsord är ju kul. Sett ur ett högre perspektiv är det förstås fånigt att en konstruk­tör av ett kors­ord lägger ner tid på att skapa det, och sen lägger tusen­tals per­soner ner varsin timma på att lösa det.

Jag spenderade några regniga kvällar på att göra ett program som löser krypton så jag slipper göra det själv. Menings­löst? Är det att för­störa nöjet? Ja, kanske, men jag behöver inget suddgummi…

Krypto

Den typ av korsord som ofta kallas krypto är den enk­laste formen av kryp­tering. Varje bok­stav har ersatts av en siffra och det är upp till lösa­ren att lista ut vad som är vad. Vet man bara vilket språk kryp­tot är skri­vet i är det egent­ligen en lätt uppgift. Det är trögast i början, men har man klarat av några enstaka bok­stäver så ökar farten mot slutet.

Ordlista

Precis som alla andra kors­ords­lösare behöver prog­rammet ett ord­förråd. Jag har lagt in en stor ord­lista i en databas. Förutom ordet i klar­text har jag beräknat dess ”generiska” mot­svarig­het och lagt denna i en separat kolumn, till exempel så här:
Klartext Generisk
knipslug ABCDEFGH
terror ABCCDC
inflammation   ABCDEFFEGAHB
Det går lika bra med siffror som bostäver i vänster­kolumnen, och de siffer­följder som finns i kryptot omvandlas också till såna här ABCDB…-strängar. Där­efter börjar pro­grammet matcha kryptots gene­riska ord mot de som är lagrade i databasen.

Som exempel, Om 3-12-9-9-4-9 finns i ett krypto blir dess gene­riska mot­svarig­het ABCCDC, då skulle rätt svar kunna vara ”terror”. Eller drygt hundra andra ord, men det är i alla fall en bra reduk­tion från de ∼402 000 som finns i hela ordlistan.

Hastighet

Hade man inte haft generiska strängar plus mönster­match­ning kanske man låtit datorn slump­vis pröva alla möjliga kombi­na­tioner av våra tjugo­nio bok­stäver för att se om alla lös­ningar matchar ord­listan. Antalet sätt att numrera bok­stäverna blir astro­nomiskt stora, ungefär en 9:a med trettio nollor efter. Datorer är snabba, men att bara chansa fram tecknen på detta sätt skulle nog ändå ta många år.

Med mitt lilla program tar ett normal­stort krypto, säg 20×20 rutor, runt en halv minut att lösa, och det var ändå på en gammal trött 475 MHz laptop i seklets början.

Svårigheter

Om ett ord inte finns i ordlistan blir det värre för programmet; det kan då inte använda detta ord för att matcha i data­basen. Svårt är det också om det inte finns till­räckligt med ”långa” ord. Det är de långa orden som jämförs ”generiskt” först då det inte bör finnas så många ord med samma gene­riska mönster. T.ex. finns det bara ett enda svenskt ord som matchar det gene­riska mönstret ABCCDEDFADC (som i ett krypto kanske mot­svarats av siffrorna 1-2-3-3-4-5-4-6-1-4-3). Vilket ord är det?

Provkör

Här kan du få hjälp med förslag på ord som passar in på ett visst sök­mönster. Antag att du i ett krypto har ett ord på 8 bokstäver med siffer­följden 8-12-9-7-1-20-8-7. Du vet att tredje bok­staven ska vara N och den femte R. Då skriver du i rutan nedanför 8-12-N-7-R-20-8-7 och trycker på Sök. Har du inga ”säkra” bok­stäver går det att bara skriva in siff­rorna, men du kan då få fler förslag än du har nytta av. Högst 200 förslag visas.

Obs! Om du inte löser ett siffer­krypto utan ett ”vanligt” kors­ord kan du också använda sök­rutan här. Fyll i så fall i de kända bok­stäver du har och sätt en punkt för varje okänd ruta. T.ex r.v.r...a, inga mellan­slag eller siffror här.