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
chtěl bych se vás zeptat, zda byste mi poradili jak naprogramovat sudoku.. Googlim asi dvě hodiny a skoro nic hodnotnýho jsem nenašel.. Na Wikipedii je sice tuna teorie, ale to vám nepomůže jak to efektivně naprogramovat.. Navíc jiné algoritmy jsou buď neuplné nebo udělané jako celej komplexní program a pak se vyznat v takovém kodu není vůbec lehké. Stačilo by jim jen procedura na řešení a zjištění kolik řešení má ze zadaného vstupu.
Offline
vojta01 napsal(a):
Ahoj, předpokládám, že chceš udělat program na luštění sudoku, ne na jeho vytváření.
Algoritmus na řešení sudoku pomocí hrubé síly (zkoušení všech možností) je uveden v knize Algoritmy v jazyku C a C++.
a to už najdeš na internetu:)
a kdyby jsi ji chtěl vytvářet, tak na to tu už jedna diskuze je založena
Offline
↑ VojtechSejkora:
řešení hrubou silou mi neuznají , za to mi dají 0 bodů a nenapadá mě jak to udělat lépe
Offline

Neuznali by ti to, ani kdybys pouzil back-tracking? Neco podobneho, jako je tady (asi uz jsi videl). To je podle me tak napul hruba sila. Jinak nic lepsiho nez na te wiki asi nebude - jestli jsem to spravne pochopil, tak nejefektivnejsi by melo byt resit to podle logiky, tak jak by to resil clovek, a kdyz uz by program nevedel jak dal, tak to doresit tim back-trackingem.
Offline
↑ Lumikodlak:
vypadá to slušně, věděl bys jak to přepsat do C?
Offline
↑ PeterSheldon:
no tak já našel ještě zajímavý řešení, ale je to jen v javě, tak jak by to řešil člověk
mrkni na to třeba ti to pomůže
Offline
↑ VojtechSejkora:
to vypadá dobře .. to je přesně ono.. Postačí to tedy přepsat do C a bude to fungovat
Offline
↑ PeterSheldon:
no do C to budeš přepisovat celkem těžko, když tam používal i oběkty, alw třeba ty to zvládneš:)
GL
Offline
↑ VojtechSejkora:
nebudu to mít ve třídách ale jen jako funkce... volat se to bude stejně, jen nezapomenout, že tam používá trošku složitější věci , podobné jako ukazatele, aspoň tak bych to chápal já co jsme brali z C (podle int ** pole), ale je možné že se mýlím =) Kdybys mi s tím pomoh byl bych rád
Offline
↑ PeterSheldon:
hmm tak to se omlouvám, ale já neumím v céčku:( začal jsme v javě a céčko co píšu píšu podle javy, ale nepoužívám objekty...a vážně moc neumým myslet v céčku:(....takže promiň, ale asi ti s tím moc nepomohu...
Offline

↑ PeterSheldon:
To co říkáš je pravda. Jen odstraníš tu třídu a změníš výpis ze stylu c++ na c.
Ještě v c se nepoužívá new a delete.
Offline
↑ gladiator01:
ale on chce prepisovat z javy to lidske reseni
Offline

↑ VojtechSejkora:
Proč myslíš, vždyť to nikde nepíše. Já jsem usuzovala podle toho int ** pole, že chce přepisovat to s tím backtrackingem, ale on zřejmě myslel tou složitější věcí deklaraci dvojrozměrného polev javovskym, to je jedno.
Offline
PeterSheldon napsal(a):
↑ VojtechSejkora:
řešení hrubou silou mi neuznají , za to mi dají 0 bodů a nenapadá mě jak to udělat lépe
z tohoto jsem vycházel
Offline
↑ VojtechSejkora:
řešení jen hrubou silou ne, ale backtracking by už mohli, tak to chci zkusit... Vím, že delete a new se tam nepoužívá, jen to přepíšu tak, aby to fungovalo. Myslíš, že to mám předělat přímo jako dynamické pole?
Offline

↑ PeterSheldon:
Takže chceš předělávat to v tom c++ nebo v Javě?
---------------------
Ano dynamické pole - fce malloc a free
Offline
↑ gladiator01:
předělám si to z C++ do C, myslím, že to již mám, bylo by možné ti přepsaný kod poslat na kontrolu?
Offline

↑ PeterSheldon:
Klidně to sem dej.
Jestli si myslíš, že to máš dobře, tak označím téma za vyřešené.
Offline