Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Sudoku 数 独 (tal en gang). dIntProg, E08Sudoku.2 Oprindelsen af Sudoku Suji wa dokushin ni kagir –tallene må kun forekomme én gang Su doku –tal enkelt.

Lignende præsentationer


Præsentationer af emnet: "Sudoku 数 独 (tal en gang). dIntProg, E08Sudoku.2 Oprindelsen af Sudoku Suji wa dokushin ni kagir –tallene må kun forekomme én gang Su doku –tal enkelt."— Præsentationens transcript:

1 Sudoku 数 独 (tal en gang)

2 dIntProg, E08Sudoku.2 Oprindelsen af Sudoku Suji wa dokushin ni kagir –tallene må kun forekomme én gang Su doku –tal enkelt Opfundet af Leonhard Euler –Schweitzisk matematiker, 1707-1783 –Største matematiker i det 18. århundrede –Latinske kvadrater (romertal), 1783 Leonhard Euler Joseph Louis Lagrange Simeon Denis Poisson Gustav Peter Lejeune Dirichlet Rudolf Otto Sigismund Lipschitz C. Felix (Christian) Klein C. L. Ferdinand (Carl Louis) Lindemann Hermann Minkowski Constantin Carathéodory Georg Aumann Friedrich Ludwig Bauer David Gries Michael E. Caspersen

3 dIntProg, E08Sudoku.3 Nutidens Sudoku Howard Garnes, 1979 Math Puzzles and Logic Problems, Dell Magazines –Amerikansk puslespilsblad –Number Place Nikoli, 1984 –Japansk puslespilsblad –Introducerede betegnelsen Suji wa dokushin ni kagir –Stort hit fra 1986 (registreret varemærke) I dag –Udgivelse af fem Sudoku-blade hver måned i Japan

4 dIntProg, E08Sudoku.4 Sudoku og computerprogrammer Wayne Gould –Startede i 1997 på et program der kunne lave Sudoku-spil –Det tog ham efter sigende over seks år... –www.sudoku.com (Pappocom) Leverer til engelske aviser... –Debut i The Times, 12. november 2004... og danske –Politiken, 12. juni 2005 –Jyllands-Posten, 13. juni 2005 –Ekstra Bladet, 15. juni 2005 –...

5 dIntProg, E08Sudoku.5 GADs bestsellerliste, 14. oktober 2005 1.Litas: Sudoku 1 2.Litas: Sudoku 2 3.Litas: Sudoku 3 4.Sudoku for begyndere 5.Sudoku 6.Su Doku 7.Su Doku 2 8.Flere Sudoku 9.Junior Sudoku 10.Mange flere Sudoku

6 dIntProg, E08Sudoku.6 Mennesket mod maskinen... (1) Deep Blue vinder matchen 3,5 – 2,5 3. – 11. maj 1997

7 dIntProg, E08Sudoku.7 Mennesket mod maskinen... (2) Dyb Gul løfter 187,5 kg mod Kaspers 180 kg 11. maj 19... KasperDyb Gul

8 dIntProg, E08Sudoku.8 Computere og intelligens... En computer der spiller skak udviser menneskelige træk i samme grad som en gaffeltruck der løfter gods...

9 dIntProg, E08Sudoku.9 Computerens styrke At kunne foretage simple beregninger lynhurtigt På kort tid at kunne –lagre store datamængder –søge i store datamængder –bearbejde store datamængder –afsøge et stort antal muligheder og kombinationer Informations-Repræsentations-Transformations- Maskine –hurtig og sikker i detaljen –skal programmeres...

10 dIntProg, E08Sudoku.10 Program der kan spille Sudoku

11 dIntProg, E08Sudoku.11 Opbygning af Grid Blok: 3 x 3 felter (block) Gitter: 9 blokke (grid)

12 dIntProg, E08Sudoku.12 Spilleregel I hver blok, række og søjle skal tallene 1..9 forekomme præcis en gang. Blok Række Søjle

13 dIntProg, E08Sudoku.13 Strategier med udgangspunkt i værdi Eliminering (Locked cells) –udgangspunkt i en bestemt værdi (1) Afledt udelukkelse –udgangspunkt i en bestemt værdi (2)

14 dIntProg, E08Sudoku.14 Strategier med udgangspunkt i felt Komplettering –udgangspunkt i et bestemt felt Sweeping –udgangspunkt i et bestemt felt

15 dIntProg, E08Sudoku.15 Hvis man har muskler nok Rå kraft (brute force) Afprøv systematisk alle lovende muligheder a b c d e f g h i 123456789123456789 a1 c1 e1 g1 i1 a2 b2 e2 h2 i1... 939 278 78 8 39278 17 7 92 92414

16 dIntProg, E08Sudoku.16 Hvis man har muller nok Rå kraft (brute force) Afprøv systematisk alle lovende muligheder a b c d e f g h i 123456789123456789 a1 c1 e1 g1 i1 a2 b2 e2 h2 i1... 939 278 78 8 39278 17 7 94 92414

17 dIntProg, E08Sudoku.17 Hvis man har muller nok Rå kraft (brute force) Afprøv systematisk alle lovende muligheder a b c d e f g h i 123456789123456789 a1 c1 e1 g1 i1 a2 b2 e2 h2 i1... 939 278 78 8 39278 4 792414? Og så videre...

18 dIntProg, E08Sudoku.18 Algoritmen prøvAlleMuligheder() { if { } else { for { if { prøvAlleMuligheder() } } // backtrack to previous field } } a b c d e f g h i 123456789123456789 39278 1794

19 dIntProg, E08Sudoku.19 Hvad har vi brug for at kunne på et Grid prøvAlleMuligheder() { if { } else { for { if { prøvAlleMuligheder() } // backtrack to previous field } // allFilled() // printGrid() // currentField() // advanceToNextUnfilled() // promissing(c) // setFieldValue(c) // clearCurrentField() // setToField()

20 dIntProg, E08Sudoku.20 Java-version public void tryAll() { if ( g.allFilled() ) { g.printGrid(); } else { // try all promissing values at next field Field previous = g.currentField(); g.advanceToNextUnfilled(); for ( int c = 1; c <=9; c++ ) { if ( g.promissing(c) ) { g.setFieldValue(c); tryAll(); } // backtrack to previous field g.clearCurrentField(); g.setToField(previous); } Metoden promissing(c) benytter sweeping til at afgøre om en kandidat c er værd at satse på. blok række søjle

21 dIntProg, E08Sudoku.21 Klassemodel Grid boolean allFilled() void printGrid() Field currentField() void advanceToNextField() boolean promissing(int c) void setFieldValue(int v) void clearCurrentField() void setToField(Field f) Solver void tryAll() 1


Download ppt "Sudoku 数 独 (tal en gang). dIntProg, E08Sudoku.2 Oprindelsen af Sudoku Suji wa dokushin ni kagir –tallene må kun forekomme én gang Su doku –tal enkelt."

Lignende præsentationer


Annoncer fra Google