Sudoku. (tal en gang)

Relaterede dokumenter
Forelæsning 1.1 Kursusintroduktion Introduktion til programmering

Forelæsning Uge 1 Mandag

Forelæsning Uge 1 Mandag

Velkommen til Introduktion til Programmering

Velkommen til Introduktion til Programmering

Kunstig intelligens. Thomas Bolander, Lektor, DTU Compute. Siri-kommissionen, 17. august Thomas Bolander, Siri-kommissionen, 17/8-16 p.

Det er muligt at chekce følgende opg. i CodeJudge: og

Kreativ programmering

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

FORSTÅ FREMTIDEN? 28. november, Anders Kofod-Petersen Vicedirektør, Alexandra Instituttet Professor, NTNU

Titel: Barry s Bespoke Bakery

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater

Trolling Master Bornholm 2015

Lær Python dag 1 - modul 1

Trolling Master Bornholm 2013

Løsning af skyline-problemet

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

Trolling Master Bornholm 2014


Bilag J - Beregning af forventet uheldstæthed på det tosporede vejnet i åbent land Andersen, Camilla Sloth

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index

Forelæsning Uge 2 Torsdag

Skriftlig Eksamen Diskret matematik med anvendelser (DM72)

Virkefeltsregler i Java

SCS Data Manager. Release-bemærkninger. Version 3.00

Faglig udvikling og strategisk ledelse utopi eller nødvendighed?

Udtømmende søgning. Udtømmende søgning (kombinatorisk søgning) Problem med 4461 byer Udtømmende søgning i grafer. Find den korteste rundtur

PROBLEMLØSNING - HVAD KAN DET?

Undervisningsbeskrivelse

Trolling Master Bornholm 2013

Vadehavsforskning 2015

TEKNOLOGIFORSTÅELSE EN NY FAGLIGHED I FOLKESKOLEN

Udtømmende søgning 1

Brug sømbrættet til at lave sjove figurer. Lav fx: Få de andre til at gætte, hvad du har lavet. Use the nail board to make funny shapes.

DK - Quick Text Translation. HEYYER Net Promoter System Magento extension

how to save excel as pdf

Trolling Master Bornholm 2013

Side 1 af 9. SEPA Direct Debit Betalingsaftaler Vejledning

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

Vejledning til Sundhedsprocenten og Sundhedstjek

Vejledning til at tjekke om du har sat manuel IP på din computer.

Danish Language Course for International University Students Copenhagen, 12 July 1 August Application form

Trolling Master Bornholm 2014

Exceptions i Delphi. Try except

Trolling Master Bornholm 2015

StarWars-videointro. Start din video på den nørdede måde! Version: August 2012

Tema: Pets Fag: Engelsk Målgruppe: 4. klasse Titel: Me and my pet Vejledning Lærer

Shooting tethered med Canon EOS-D i Capture One Pro. Shooting tethered i Capture One Pro 6.4 & 7.0 på MAC OS-X & 10.8

Linear Programming ١ C H A P T E R 2

DM502. Peter Schneider-Kamp

Under 'Microsoft Block Editor', klik 'New project' for at åbne block editor-værktøjet.

SEPA Direct Debit. Mandat Vejledning Nets Lautrupbjerg 10 DK-2750 Ballerup

Aarhus Universitet, Science and Technology, Computer Science. Exam. Wednesday 27 June 2018, 9:00-11:00

Melbourne Mercer Global Pension Index

Skriftlig Eksamen Kombinatorik, Sandsynlighed og Randomiserede Algoritmer (DM528)

Danish Language Course for Foreign University Students Copenhagen, 13 July 2 August 2016 Advanced, medium and beginner s level.

Skriftlig Eksamen Beregnelighed (DM517)

Appendix 1: Interview guide Maria og Kristian Lundgaard-Karlshøj, Ausumgaard

Udbud på engelsk i UCL. Skabelon til beskrivelse

DEN INTERNATIONALE LINJE PÅ FOURFELDTSKOLEN BOHR IN TER NA T IO NAL

IT-GUIDE TIL UDFORMNING AF MARGINSPØRGSMÅL OG

Hvor er mine runde hjørner?

Status på det trådløse netværk

Central Statistical Agency.

Trolling Master Bornholm 2016 Nyhedsbrev nr. 6

Bemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret.

Matematikken i kunstig intelligens Opgaver om koordinerende robotter

Trolling Master Bornholm 2016 Nyhedsbrev nr. 8

Grundtvigs Sandkasse

Eric Nordenstam 1 Benjamin Young 2. FPSAC 12, Nagoya, Japan

Matematikken i kunstig intelligens Opgaver om koordinerende robotter LØSNINGER

To BE i NUTID. we are vi er

Integer Factorization

Forelæsning Uge 2 Mandag

ANNONCERING AF CYKELTAXAHOLDEPLADSER I RØD ZONE OG LANGELINIE

Programmering og Problemløsning, 2017

Asking whether there are commission fees when you withdraw money in a certain country

Asking whether there are commission fees when you withdraw money in a certain country

National supercomputing dag Muligheder og Udfordringer

Majoritetsproblemet Problem Præcisering af inddata Præcisering af uddata

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

Portal Registration. Check Junk Mail for activation . 1 Click the hyperlink to take you back to the portal to confirm your registration

IPv6 Application Trial Services. 2003/08/07 Tomohide Nagashima Japan Telecom Co., Ltd.

Boligsøgning / Search for accommodation!

Forskning i socialpædagogik socialpædagogisk forskning?

MENNESKET JESUS KRISTUS PDF

APPENDIX E.3 SHADOW FLICKER CALCULATUIONS. 70 m TOWERS & 56 m BLADES

Basic statistics for experimental medical researchers

Greenfoot En kort introduktion til Programmering og Objekt-Orientering

Senest opdateret: 21. november 2016 SPØRGSMÅL OG SVAR. Vedr. offentligt udbud af rammeaftale

Timetable will be aviable after sep. 5. when the sing up ends. Provicius timetable on the next sites.

Fra røg til dårlig fisk: DTU-studerende finder nye anvendelser for sensorteknologi

University Colleges. Sådan kan du hjælpe dit barn med lektierne! Kristensen, Kitte Søndergaard. Publication date: 2011

Hvordan vælger jeg dokumentprofilen?

Microsoft Dynamics C5. version 2012 Service Pack 01 Hot fix Fix list - Payroll

Forelæsning Uge 2 Torsdag

At lytte med kroppen! Eksperternes kropsbevidsthed. Miniseminar: talentudvikling indenfor eliteidræt Susanne Ravn

BIBELEN PA HVERDAGSDANSK PDF

Intro to: Symposium on Syntactic Islands in Scandinavian and English

Transkript:

Sudoku 数独 (tal en gang)

Oprindelsen af Sudoku Suji wa dokushin ni kagir tallene må kun forekomme én gang Su doku tal enkelt 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 Opfundet af Leonhard Euler Schweitzisk matematiker, 1707-1783 Største matematiker i det 18. århundrede Latinske kvadrater (romertal), 1783 Sudoku.2

Nutidens Sudoku Howard Garnes, 1979 Math Puzzles and Logic Problems, Dell Magazines Amerikansk puslespilsblad Et spil benævnt 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 Sudoku.3

Sudoku og computerprogrammer Wayne Gould Startede i 1997 på et program der kunne lave Sudoku-spil Det tog ham efter sigende over seks år... waynegouldpuzzles.com/sudoku/ 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... Sudoku.4

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 Sudoku.5

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

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

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

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! Sudoku.9

Computer og program En computer er en generel maskine, men uden program(mer) er den intet værd! Computer + X-program = X-maskine X = Windows, Linux, OS X, skak, sudoku, tekst, musik, studieadministration, social interaktion, flykontrol, strålebehandling, DNA-forskning, kommunikation, spil, læse, regne, undervise, motorstyring, bremsestyring, bolighandel, bilhandel, dagligvarehandel, billeddeling, videodeling, kvidre, søge, oversættelse, Program Program Program Program Computer Sudoku.10

Eksempel: En Sudoku-maskine Sudoko-løser Java Java VM C++ Computer Sudoku.11

Programmering Programmering = + Problemløsning Kodning (i Java) Sudoku.12

Program der kan spille Sudoku Sudoku.13

Opbygning af Grid Blok: 3 x 3 felter (block) Gitter: 9 blokke (grid) Sudoku.14

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

Sudoku Strategier? Sudoku.16

Strategier med udgangspunkt i værdi Eliminering (Locked cells) udgangspunkt i en bestemt værdi (værdien 1) Afledt udelukkelse udgangspunkt i en bestemt værdi (værdien 2) Sudoku.17

Strategier med udgangspunkt i felt Komplettering udgangspunkt i et bestemt felt Sweeping udgangspunkt i et bestemt felt Sudoku.18

Hvis man har muskler nok Rå kraft (brute force) Afprøv systematisk alle lovende muligheder 1 2 3 4 a b c d e f g h i 3 9 2 7 8 1 7 9 2 3 9 9 2 7 8 7 8 a1 c1 e1 g1 5 8 i1 6 7 8 9 1 4 7 9 a2 b2 e2 2 4 h2 i2... Sudoku.19

Hvis man har muller nok Rå kraft (brute force) Afprøv systematisk alle lovende muligheder 1 2 3 4 a b c d e f g h i 3 9 2 7 8 1 7 9 4 3 9 9 2 7 8 7 8 a1 c1 e1 g1 5 8 i1 6 7 8 9 1 4 7 9 a2 b2 e2 2 4 h2 i1... Sudoku.20

Hvis man har muller nok Rå kraft (brute force) Afprøv systematisk alle lovende muligheder a b c d e f g h i 3 9 a1 1 2 3 4 3 9 2 7 8 4 9 2 7 8 7 8 c1 e1 g1 5 6 7 8 9 8 1 4 7? 9 2 4 i1 a2 b2 e2 h2 i1... Sudoku.21

Algoritmen prøvallemuligheder() { if <alle felter er udfyldt> { <udskriv grid> else { <husk seneste felt> <gå til næste frie felt> for <hvert ciffer c> { if <c er lovende> { <fastfrys feltværdi> prøvallemuligheder() a b c d e f g h i 3 9 2 7 8 1 7 9 4 1 2 3 4 5 6 7 8 9 // backtrack to previous field <fortryd fastfrosne værdi> <gå tilbage til forrige felt> Sudoku.22

Hvad har vi brug for at kunne på et Grid prøvallemuligheder() { if <alle felter er udfyldt> { <udskriv grid> else { <husk seneste felt> <gå til næste frie felt> for <hvert ciffer c> { if <c er lovende> { <fastfrys feltværdi> prøvallemuligheder() // allfilled() // printgrid() // currentfield() // advancetonextunfilled() // promissing(c) // setfieldvalue(c) // backtrack to previous field <fortryd fastfrosne værdi> <gå tilbage til forrige felt> // clearcurrentfield() // settofield() Sudoku.23

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 Sudoku.24

Klassemodel void tryall() Solver 1 Grid boolean allfilled() void printgrid() Field currentfield() void advancetonextfield() boolean promissing(int c) void setfieldvalue(int v) void clearcurrentfield() void settofield(field f) Sudoku.25

En Sudoku-maskine Sudoko-løser Java Java VM C++ Computer Sudoku.26

En Sudoku-maskine Sudoko-løser: Solver Grid Java Java VM C++ Computer Sudoku.27

Time Magazine, 1984 In 1984, TIME magazine quoted the chief editor of a certain software publication as saying: "Put the right kind of software into a computer, and it will do whatever you want it to. There may be limits on what you can do with the machines themselves, but there are no limits on what you can do with software. Sludder! Der er grænser masser af grænser men ufatteligt mange ting kan lade sig gøre. Sudoku.28