Hur skapas ett sudoku? Så genereras pusslen
Hur skapas ett sudoku? Bakom kulisserna på backtracking, unik lösning och svårighetsgrad — och hur Sudokun genererar ett nytt pussel i din webbläsare.
Du trycker på "Nytt pussel" och på bråkdelen av en sekund ligger ett splitternytt sudoku framför dig — perfekt balanserat, garanterat lösbart och olikt alla du sett förut. Men hur skapas ett sudoku egentligen? Sitter någon och handknåpar dem, eller gör en dator jobbet?
Svaret är eleganta algoritmer, och det är förvånansvärt begripligt. Den här artikeln går bakom kulisserna: hur ett pussel byggs upp, varför det alltid har exakt en lösning, och exakt hur Sudokun genererar ditt nästa pussel — i din egen webbläsare.
Nyckelpunkter
- Ett sudoku skapas i tre steg: bygg en full lösning → ta bort siffror → kontrollera unikhet.
- Ett riktigt sudoku har alltid exakt en lösning — annars skulle du tvingas gissa.
- Det finns ungefär 6,67×10²¹ giltiga rutnät. Du får aldrig slut på pussel.
- Sudokun genererar varje pussel i realtid i din webbläsare, från ett slumpmässigt frö.
Steg 1: Bygg ett fullständigt löst rutnät
Allt börjar baklänges. Innan datorn kan skapa ett pussel skapar den en färdig lösning: ett komplett 9×9-rutnät där varje rad, kolumn och 3×3-box redan innehåller siffrorna 1–9.
Tekniken heter backtracking och fungerar ungefär som en tålmodig person med ett suddgummi:
- Gå till första tomma cellen.
- Prova en tillåten siffra (en som inte redan finns i cellens rad, kolumn eller box).
- Gå vidare till nästa cell och upprepa.
- Kör du fast — ingen siffra passar — backa till föregående cell, sudda, och prova nästa siffra där.
Datorn provar sig alltså fram, ångrar sig när det blir omöjligt, och fortsätter tills alla 81 celler är fyllda. För att varje pussel ska bli unikt slumpas ordningen på siffrorna den provar. Det är därför du aldrig möter samma bräda två gånger.
Vill du se samma logik från andra hållet? Det är i grunden så en sudoku-lösare arbetar internt.
Steg 2: Ta bort siffror — men lagom många
Nu har vi en färdig lösning. För att göra den till ett pussel måste vi plocka bort siffror tills bara ledtrådarna återstår.
Datorn går igenom cellerna i slumpad ordning och tömmer dem en i taget. Men den kan inte ta bort hur många som helst hur som helst — och här kommer den viktigaste regeln i hela sudokun in.
Varför unik lösning är hela poängen
Ett riktigt sudoku har exakt en lösning. Om du kan lösa samma pussel på två olika sätt är det trasigt, för då finns det ett läge där logiken tar slut och du måste chansa. Bra sudoku kräver aldrig gissningar.
Därför gör generatorn en kontroll efter varje borttagen siffra:
- Ta bort siffran i en cell.
- Fråga lösaren: har pusslet fortfarande precis en lösning?
- Om ja — behåll cellen tom och gå vidare.
- Om nej — lägg tillbaka siffran. Den ledtråden behövdes.
Det är den här unikhetskontrollen som är den tunga delen av jobbet, och den som skiljer ett äkta pussel från ett rutnät med slumpmässiga hål.
löst rutnät → ta bort en siffra → fortfarande unik lösning?
├─ ja → låt cellen vara tom
└─ nej → lägg tillbaka siffran
upprepa tills antalet ledtrådar når målet
Steg 3: Sikta på rätt svårighetsgrad
Hur vet datorn när den ska sluta ta bort siffror? Den siktar på ett antal ledtrådar som hör ihop med den valda svårighetsgraden. Färre kvarvarande siffror ger, grovt sett, ett svårare pussel.
På Sudokun ser målintervallen ut så här:
| Nivå | Antal ledtrådar |
|---|---|
| Jättelätt (barn) | 45–50 |
| Lätt | 36–40 |
| Medel | 30–35 |
| Svår | 27–30 |
| Extreme | 24–26 |
Antalet ledtrådar är dock bara halva sanningen. Två pussel med lika många givna siffror kan kännas helt olika svåra beroende på var siffrorna sitter och vilka lösningstekniker de kräver. Vi går igenom den nyansen på djupet i sudoku-svårighetsgrader förklarade — men som tumregel är antalet ledtrådar en bra grovmätare.
Hur många olika sudoku finns det?
Kort svar: fler än du hinner spela på hundra livstider.
Antalet fullständigt ifyllda, giltiga 9×9-rutnät är 6 670 903 752 021 072 936 960, alltså ungefär 6,67×10²¹. Den siffran räknades ut 2005 av matematikerna Bertram Felgenhauer och Frazer Jarvis. Räknar man bort rutnät som bara är symmetrier av varandra — rotationer, speglingar och omnumreringar av siffrorna — återstår ändå omkring 5,5 miljarder väsentligen olika rutnät.
Och varje sådan lösning kan i sin tur ge upphov till många olika pussel, beroende på vilka siffror som lämnas kvar som ledtrådar. Slutsatsen är enkel: bristen på pussel är aldrig problemet.
Så gör Sudokun — i din webbläsare
Det som gör Sudokun lite ovanligt är var allt det här händer: på din egen enhet, i realtid.
När du trycker på Nytt pussel skapas ett slumpmässigt frö (en seed). Fröet matas in i en liten slumptalsgenerator som styr både hur lösningen byggs och i vilken ordning siffror tas bort. Samma frö ger alltid exakt samma pussel — vilket är precis vad som behövs för att kunna dela ett pussel eller köra ett gemensamt dagligt pussel.
Ett par praktiska konsekvenser av att generera lokalt:
- Inga konton, ingen server att vänta på. Pusslet finns aldrig i en databas — det uppstår i samma ögonblick du efterfrågar det.
- Fungerar offline. Eftersom generatorn kör i webbläsaren kan du spela sudoku online även utan uppkoppling, när sidan väl laddats.
- Oändlig variation. Nytt frö varje gång betyder ett nytt pussel varje gång.
En liten teknisk detalj: att kontrollera unikhet på pussel nära minimigränsen kan vara krävande, så lösaren har en inbyggd budget och behåller hellre en ledtråd för mycket än riskerar ett tvetydigt pussel. Bättre ett garanterat lösbart pussel än ett elegant men trasigt.
Minsta möjliga sudoku: 17-ledtrådsgränsen
Kan man ta bort hur många siffror som helst och ändå behålla en unik lösning? Nej — det finns en hård undre gräns.
Det minsta antalet ledtrådar som kan ge ett sudoku med unik lösning är 17. Att det är omöjligt med bara 16 bevisades 2012 av forskarna Gary McGuire, Bastian Tugemann och Gilles Civario, som lät en dator gå igenom alla tänkbara fall i en gigantisk sökning (There is no 16-Clue Sudoku).
De flesta pussel du spelar ligger långt över den gränsen — även våra extreme-pussel behåller minst 24 ledtrådar — men det är en fascinerande påminnelse om att det finns riktig matematik gömd under rutnätet.
Sammanfattning
Så hur skapas ett sudoku? Genom tre steg som tillsammans garanterar ett rättvist pussel:
- Bygg ett fullständigt löst rutnät med slumpad backtracking.
- Ta bort siffror i slumpad ordning, en i taget.
- Kontrollera efter varje borttagning att lösningen förblir unik, och sluta vid rätt antal ledtrådar för svårighetsgraden.
Nästa gång du trycker på Nytt pussel vet du vad som händer under huven — en färdig lösning som försiktigt monteras ned till precis det pussel du ska lösa, utan att någonsin tappa sin enda sanna lösning.
Nyfiken på att sätta teorin i praktik? Spela ett nygenererat pussel direkt, eller repetera grundreglerna först.
Vanliga frågor
Hur skapas ett sudoku?
I tre steg: först byggs ett komplett, korrekt löst 9×9-rutnät med slumpad backtracking. Sedan tas siffror bort en i taget, och efter varje borttagning kontrolleras att pusslet fortfarande har exakt en lösning. När rätt antal ledtrådar återstår för vald svårighetsgrad är pusslet klart.
Har alla sudoku en unik lösning?
Ett korrekt konstruerat sudoku har alltid exakt en lösning — det är själva definitionen av ett giltigt pussel. Har ett rutnät flera möjliga lösningar räknas det inte som ett riktigt sudoku, eftersom du då skulle tvingas gissa. Sudokun kontrollerar unikhet vid varje borttagen siffra.
Hur många olika sudoku finns det?
Antalet fullständigt ifyllda, giltiga 9×9-rutnät är 6 670 903 752 021 072 936 960 — cirka 6,67×10²¹. Räknar man bort symmetrier som rotationer, speglingar och omnumreringar återstår ändå omkring 5,5 miljarder väsentligen olika rutnät. Du kommer aldrig få slut på nya pussel.
Vad är det minsta antalet ledtrådar ett sudoku kan ha?
17. Att inget sudoku med bara 16 givna siffror kan ha en unik lösning bevisades matematiskt 2012 av McGuire, Tugemann och Civario genom en uttömmande datorsökning. De flesta pussel du spelar har betydligt fler ledtrådar än så.
Genereras pusslen på förhand eller i realtid?
På Sudokun genereras varje pussel i realtid direkt i din webbläsare, från ett slumpmässigt frö (seed). Det betyder att pusslet skapas på din egen enhet i samma stund du trycker på Nytt pussel — inga färdiga listor, inga konton, ingen väntan.