Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 27. 10. 2010 01:54

VojtechSejkora
Příspěvky: 176
Reputace:   
 

Generace sudoky

Chtěl bych v Javě udělat program, který mi vygeneruje sudoku
znám pravidla sudoky, tedy by snad neměl být pro mě až takový problém udělat sudoku, která bude splňovat všechna pravidla pro sudoku (tedy řádku,sloupce a čtverce) akorát nevím jak mám poznat, jaká čísla a kolik musím nejméně odhalit aby se dala tato sudoka řešit, a řešitel přišel právě na to moje jedno řešení....

díky moc za radu

Offline

  • (téma jako vyřešené označil(a) VojtechSejkora)

#2 27. 10. 2010 09:59

vojta01
Příspěvky: 63
Reputace:   
 

Re: Generace sudoky

Ahoj, zkus se podívat do knížky Algoritmy v jazyku C a C++, tam je program, který vyřeší zadanou matici sudoku. Pokud ti to pomůže, podívej se na to. Část této knížky je na books.google.com, ale stránka 109 až 111, kde ten algoritmus je, tam zrovna nějsou naskenované.

Offline

 

#3 27. 10. 2010 12:22

septolet
Příspěvky: 334
Reputace:   
 

Re: Generace sudoky

Algoritmus na řešení sudoku není těžký. Stejně tak není ani jeho zápis není nijak dlouhý.

Často používaný algoritmus na řešení sudoku je tzv. backtracking. U něj je trochu problém s tím, že sudoku neřeší jako člověk, takže pro člověka může být následné řešení dosti obtížné. Proto bych zde použil spíše algoritmus, který bude sudoku řešit jako člověk, takže se nestane, že vygeneruješ pro člověka neřešitelné sudoku.

Offline

 

#4 27. 10. 2010 19:41 — Editoval VojtechSejkora (27. 10. 2010 20:00)

VojtechSejkora
Příspěvky: 176
Reputace:   
 

Re: Generace sudoky

Kuci děkuji za snahu... to s tou sudokou v té knížce Algoritmy C a C++ si přečtu, ale pokud mi tam nenapíší, jaká čísla a kolik musím zveřejnit tak nevím:(

jinak jsme ve 2.ku SŠ tak na to trošku berte ohled neznám všechny možní druhy algoritmů a ten backtracking opravdu neznám

ale jestli jsem to dopře pochopil tak ten algoritmus umí udělat to, že když má zadanou nějakou sudoku tak ji vypočítá, ale já chci udělat program, který vygeneruje nějakou sudoku a pak vypíše nějaká čísla na určitých mástech tak, aby ji mohl člověk vyřešit.....

Offline

 

#5 27. 10. 2010 20:29

septolet
Příspěvky: 334
Reputace:   
 

Re: Generace sudoky

↑ VojtechSejkora:

Jasně, backtracking se používá pro řešení sudoku tabulky. Ale pokud chceš vygenerovat zadání, které má právě jedno řešení, tak se ti bude hodit algoritmus pro řešení sudoku. Alespoň já bych to dělal tak, že si vygeneruju čísla, která splňují pravidla sudoku (ne dvě stejná čísla ve čtverci, v řádku a ve slopci) a poté zkontroluji, zdali lze sudoku vyřešit tak, aby mělo právě jedno řešení.

Jak jsem už ale psal, tak ten backtracking asi nebude nejvhodnější, protože člověk sudoku většinou neluští metodou pokus omyl :D Většinou to řešíš za pomoci tzv. kandidátů. Doplníš patřičné číslo právě tam, kde ti zbyl už jenom jeden kandidát. K tomuhle musíš přihlížet při psaní toho algoritmu.

Já jsem si někdy dříve (možná taky v tom druháku, už nevím přesně) podobný algoritmus napsal, takže v případě zájmu ti mohu ještě poskytnout více info, případně ti ho ukázat, aby ses měl čeho chytit.

Offline

 

#6 27. 10. 2010 22:57

7867088
Příspěvky: 232
Reputace:   
 

Re: Generace sudoky

sudoku lze jistě řešit soustavou lineárních 27 rovnic o 81 neznámých jestli to pomůže

Offline

 

#7 28. 10. 2010 01:26 — Editoval VojtechSejkora (28. 10. 2010 01:27)

VojtechSejkora
Příspěvky: 176
Reputace:   
 

Re: Generace sudoky

↑ 7867088:
tak to by mě tedy zajímalo jak to chceš vyřešit. když máš více neznámích jak rovnic:D

↑ septolet:
no jako můj spolubydlící by to tak klidně řešil:D
chvilku si budu lámat hlavu s tím a pokud na to nepříjdu tak se na ten tvůj algoritmus kouknu
díky

Offline

 

#8 28. 10. 2010 01:33

septolet
Příspěvky: 334
Reputace:   
 

Re: Generace sudoky

↑ VojtechSejkora:

:D Dobře, kdyžtak si řekni a pošlu ti ho třeba na email nebo ho někam uploadnu a pošlu ti link ke stažení.

Offline

 

#9 28. 10. 2010 13:04

vojta01
Příspěvky: 63
Reputace:   
 

Re: Generace sudoky

Link na tu soustavu rovnic? To by mě také zajímalo.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson