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

Slides:



Advertisements
Lignende præsentationer
1 Test 2 Klik for at begynde. 2 Hvor skal du klikke for at få vist tabelværktøjer?
Advertisements

Illustration fra Bogen om kræft figur 4.1.
Værktøjer/tips og tricks - til implementering af ændringer i egen organisation Hvorfor benchmarking/evaluering Er der nogen, der ved, hvorfor vi laver.
Internet til alvor og sjov
Indsæt nyt billede: Format: B 254 x 190,5 mm Efter indsættelse, højreklik på billedet og placér det bagerst. Delete det gamle foto Ny Farm N Visning og.
1 DSB og Bibliotekerne Personlige interview foretaget 20. til 25. januar respondenter Holdning til evt. ny portal.
Illustration fra Kort om kræft figur 4.1.
Pc-kørekort Sådan virker pc’en Keld Hinsch.
Din kontakt med det offentlige starter på nettet [kommune, logo, dato]
Julekalender 2010 For Herren i Huset For Fruen i Huset
PROGRAM Introduktion til internettet Hvad er en PC? Musetræning
1 Går fra at vil maksimere dækning til at minimere omkostning Det kender vi fra den anden bog Omkostningen er afstanden gange antal enheder der skal transporteres.
Velkommen til E-business
AFSÆTNING A – Schønberg
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Bro over Munksjön - Jönköping
22.maj 12 Globaliseringsredegørelsen Globaliseringsredegørelsen 2012 Grafer og figurer fra temakapitlet: Gældskrisen fører til langvarig lavvækst.
Introduktion til Access (Access, del 1)
Opslagsfelter (Access, del 6). RHS – Informationsteknologi 2 Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser vores.
”Et fællesskab af tjenester” Kirke som TEAM Et netværk af menigheder… 1.
1 UNION-FIND. 2 inddata: en følge af heltalspar (p, q); betydning: p er “forbundet med” q uddata: intet, hvis p og q er forbundet, ellers (p, q) Eksempel.
Induktion og rekursion
1 Test i Word 2007 Klik her for at begynde. 2 Hvor skal du klikke for at gemme dit dokument?
Antal registrerede selvmord i Danmark ( )
Et vejledningsværktøj KOT Ansøgningsflow. Forsiden af Optagelse.dk 2.
1 Algoritme til at løse knude P-center problemet Algoritmen brugte set covering problemet Virker derfor kun til knude problemer Vi vil alligevel bruge.
Lær at søge bedre på nettet
Globaliseringsredegørelsen 24.mar. 14 Figurer fra Danmark tiltrækker for få udenlandske investeringer i Sådan ligger landet
Anvendelser I Leg og spil.
Claus Brabrand, ITU, Denmark Mar 10, 2009EFFECTIVE JAVA Effective Java Presentation Workshop Claus Brabrand [ ] ( “FÅP”: First-year Project.
1 Algoritmik ved Keld Helsgaun. 2 Plan Algoritmebegrebet et simpelt eksempel Et eksempel på algoritmedesign.
AJAX/Otto Knudsen 1 AJAX Motivation Definition. AJAX/Otto Knudsen 2 Motivation En typisk web-applikation er synkron klienten sender en forespørgsel og.
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
Grunde til at jeg elsker dig
Januar 2009 MandagTirsdagOnsdagTorsdagFredagLørdagSøndag Uge 2. Anette Ø. Kl Tina H. Lone M. 6 Kl Britt H. 7 Kl Vinnie G. Gerda.
Velkommen til Kandidat Åbent hus 2015
Kursusintroduktion Introduktion til programmering
1 PC baseret dataanalyse og simulering Week2 A. 2 SAS input/output filer Inddata -textfil - SAS-program -textfil- SAS datasæt SAS system SAS listing -print.
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
Opslagsfelter (Access, del 6). RHS – Informationsteknologi – Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
NVF 8. juni 2005 Dias 1 DOGS-systemet Nyt adaptivt system DOGS af Steen Lauritzen.
Fundamentale sprogbegreber
Fremstilling af Simple WEB steder [ITPL] Foråret 2004
Algoritmer Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet MasterClass i Matematik, 10. april 2014, Aarhus Universitet.
Anvendelser I Leg og spil.
PD – kursusgang 3 Introduktion til Java Script. Mål Viden om hvordan JavaScripts indlejres i HTML dokumenter Viden om programmering i JavaScript  Erklæring.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Globaliseringsredegørelse 21.mar. 11 Globaliseringsredegørelsen 2011 Grafer fra temakapitlet Eksporten som drivkraft for vækst og velstand.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Repetition af dIntProg v/ Morten D. Bech. Tour de force Variabler Løkker Comparable ImErKo-reglen Eksamenssæt dIntProg, E13.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal.
Quiz 3.1. Quiz 1 – Assignment dIntProg, E14 Hvad er værdierne af x og y efter udførelse af følgende program? 1.x er 6, y er 3 2.x er 8, y er 5 3.x er.
Søgning.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSøgning.2 Søgeproblemer... Søgning efter fil(er) Søgning i databaser.
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.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering9B.1 Fletning.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Rekursion 2.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursion 2.2 Introduktion Vi har tidligere set eksempler på rekursive.
Sortering.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.2 Sortering Vi hartidligere set at effektiv søgning forudsætter.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering7B.1 Søgning.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering7A.1 Rekursion.
I o p o DAIMI, AU, December 1999Introducerende objektorienteret programmering14B.1 Sortering.
Skildpadder Modeller, objekter og opførsel.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges.
Forelæsning Uge 1 – Mandag Hvad er programmering? –Eksempel: program, der kan løse sudoku opgaver –Programmering og problemløsning dIntProg kurset –Hvad.
Forelæsning Uge 1 – Mandag Hvad er programmering? –Eksempel: program, der kan løse sudoku opgaver –Programmering og problemløsning dIntProg kurset –Hvad.
Forelæsning Uge 1 – Mandag
Velkommen til Introduktion til Programmering
Præsentationens transcript:

Sudoku 数 独 (tal en gang)

dIntProg, E12Sudoku.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, –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

dIntProg, E12Sudoku.3 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

dIntProg, E12Sudoku.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... –waynegouldpuzzles.com/sudoku/ Leverer til engelske aviser... –Debut i The Times, 12. november og danske –Politiken, 12. juni 2005 –Jyllands-Posten, 13. juni 2005 –Ekstra Bladet, 15. juni 2005 –...

dIntProg, E12Sudoku.5 GADs bestsellerliste, 14. oktober 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

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

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

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

dIntProg, E12Sudoku.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!

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

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

Programmering… dIntProg, E12Sudoku.12 Programmering = + ProblemløsningKodning (i Java)

dIntProg, E12Sudoku.13 Program der kan spille Sudoku

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

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

dIntProg, E12Sudoku.16 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)

dIntProg, E12Sudoku.17 Strategier med udgangspunkt i felt Komplettering –udgangspunkt i et bestemt felt Sweeping –udgangspunkt i et bestemt felt

dIntProg, E12Sudoku.18 Hvis man har muskler nok Rå kraft (brute force) Afprøv systematisk alle lovende muligheder a b c d e f g h i a1 c1 e1 g1 i1 a2 b2 e2 h2 i

dIntProg, E12Sudoku.19 Hvis man har muller nok Rå kraft (brute force) Afprøv systematisk alle lovende muligheder a b c d e f g h i a1 c1 e1 g1 i1 a2 b2 e2 h2 i

dIntProg, E12Sudoku.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 a1 c1 e1 g1 i1 a2 b2 e2 h2 i ? Og så videre...

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

dIntProg, E12Sudoku.22 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()

dIntProg, E12Sudoku.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

dIntProg, E12Sudoku.24 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

En Sudoku-maskine dIntProg, E12Sudoku.25 Computer C++Java VM Java … Sudoko-løser

En Sudoku-maskine dIntProg, E12Sudoku.26 Computer C++Java VM Java … Sudoko-løser: GridSolver

Time Magazine, 1984 dIntProg, E12Sudoku.27 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.

Programmering… dIntProg, E12Sudoku.28 Programmering = + ProblemløsningKodning (i Java)

Problemløsning dIntProg, E12Sudoku.29 Kodning (i Java)