Ülesanne siis järgmine:
Alljärgnevalt on kirjeldatud erikujulise sudoku väljad:
6 6 8 8 8 8 8 8 8
6 6 2 2 2 8 2 3 8
6 6 6 6 2 2 2 3 3
6 5 5 1 2 2 1 3 3
5 5 1 1 1 1 1 3 3
5 5 1 7 7 1 3 3 4
5 5 7 7 7 4 4 4 4
9 5 7 9 7 7 7 4 4
9 9 9 9 9 9 9 4 4
Ühesugused numbrid tähistavad ühte ala.
Meil on vaja genereerida juhuslikult selline sudoku kus numbrid (1-9) igas reas ja veerus oleks unikaalsed. Lisaks peab unikaalsus olema tagatud ka igas alas (kirjeldatud eelneva massiiviga).
Enne me erikujulisi sudokusid vinti tuua ei saa kui me loome algoritmi, mis selle sudoku umbes 100 ms ära genereerib.
Ehk on Vindi kasutajate hulgas mõni programmeerimishuviline kes antud ülesande ära lahendab.
Ülesande lahendajale au, kuulsus ja muud hüved (tasuta VIP staatus jms).
NB! Algoritm peab suutma genereerida igale erikujulisele sudokule (kirjeldatud siin: http://www.vint.ee/uploads/erikujuline.txt) korrektse ülesande alla 100 ms.
Väike Programmeerimise väljakutse (Erikujulised sudokud)
Loetud 91 kasutaja poolt
Ma arvan, et selle jaoks on vaja ikka kümne aastase kogemusega IT-spetsialisti.
[i]postitas kraska[/i]
Ma arvan, et selle jaoks on vaja ikka kümne aastase kogemusega IT-spetsialisti.
Ma arvan, et selle jaoks on vaja ikka kümne aastase kogemusega IT-spetsialisti.
Ei. Tiit näiteks õppis keskkoolis paar aastat Pascalit. Ühel hetkel võttis kätte ja progres Javas sudokude hindaja. meetod, mis võtab sisendiks lahendamata sudoku ja ütleb, kui raske seda lahendada on (Täna Vindis kasutusel olev kerge/keskmine/Raske süsteem).
Käesoleva ülesande lahendamiseks on vaja primitiivseid teadmisi programmeerimisest (while ja if põhiliselt).
Kõige keerulisem on välja mõelda algoritm - Andmestruktuuride, while tsüklite korrektse kirlejdamise jms pealt võid võita kordades. Õige algoritmiga võidad ajas suurusjärkudes.
Huvitav, kas see näide on natukenegi õiges suunas?
11115555
11225255
37773375
84474479
81144666
98448446
37557775
22328899
22229999
11115555
11225255
37773375
84474479
81144666
98448446
37557775
22328899
22229999
Sul ei ole ju igas reas unikaalsed numbrid nagu sudoku nõuab:)
Nüüd peaks olema küll unikaalne, peeglis, entroopialik, negatiiv. Näite põhjal see igatahes nii tundus. Üks kriteerijum oli puudu. Kõiki numbreid peab olema üheksa. Ja üks rida lahendusest puudus:)
111185555
117115255
177733375
374764476
666474333
384448486
286668889
223299899
222259999
111185555
117115255
177733375
374764476
666474333
384448486
286668889
223299899
222259999
Sa oled vist ülesandest valesti aru saanud: Eesmärk on tekitada täidetud erikujuline sudoku, võttes aluseks erikujulise sudoku kirjeldus (mis oli lisatud esimeses postituses)
Tõepoolest, ilmselt püüdsin võhikuna aru saada, sudoku kirjeldusest, arvuti keeles.
Oleks abiks kirjeldust ja sudokut kõrvuti näha. See aitaks mõista ühe numbrirea tähendust, sudoku või selle osa kirjeldamisel.
Näites olev numbrijada selline:
{1,1,1,1,1,2,2,2,2},
{1,1,3,3,4,5,5,2,2},
{1,3,3,4,4,4,5,5,2},
{1,3,4,4,4,4,4,5,2},
{8,3,6,6,6,6,6,5,2},
{8,3,3,6,6,6,5,5,9},
{8,3,7,7,6,7,7,5,9},
{8,8,7,7,7,7,7,9,9},
{8,8,8,8,9,9,9,9,9}};
Püüdsin kirjutada ilmselt teise sudoku kirjeldust, et numbrid igas reas ja veerus oleks unikaalsed. Lisaks, et unikaalsus oleks tagatud ka igas alas (kirjeldatud eelneva massiiviga).
Oma unikaalne süsteem ja sarnasus siin on. Massiiv ja tähendus ilmselt puudulik:)
Kuid mõte iseenesest ei tundunud tobe seetõttu, et sudokusid on palju erinevaid. Seetõttu võis arvata, et ka kirjeldusi ilmselt palju erinevaid. Ning tulemuseks tuli midagi sellist:
(1,1,1,5,2,5,9,9,9)
(1,1,6,3,7,3,6,9,9)
(1,8,8,8,7,4,4,4,9)
(5,6,6,6,7,2,3,3,2)
(2,2,2,7,7,7,5,5,5)
(5,6,6,5,7,3,3,3,2)
(4,9,9,9,7,1,1,1,8)
(4,4,6,3,7,3,6,8,8)
(4,4,4,2,5,2,8,8,8));
626171848
262717484
626171848
595737959
959373595
595737959
484313262
848131626
484313262
Ja nagu ma nüüd aru sain siis ei ole siiski eesmärk täidetud erikujuline sudoku Või kirjeldus, mis on juba olemas ja eksisteerib, vaid olemasoleva sudoku (kirjeldusele) programm, mis seda loeb, et arvuti söödetud info kiiremini jõuaks visuaalseks sudokuks kuvada.
Oleks abiks kirjeldust ja sudokut kõrvuti näha. See aitaks mõista ühe numbrirea tähendust, sudoku või selle osa kirjeldamisel.
Näites olev numbrijada selline:
{1,1,1,1,1,2,2,2,2},
{1,1,3,3,4,5,5,2,2},
{1,3,3,4,4,4,5,5,2},
{1,3,4,4,4,4,4,5,2},
{8,3,6,6,6,6,6,5,2},
{8,3,3,6,6,6,5,5,9},
{8,3,7,7,6,7,7,5,9},
{8,8,7,7,7,7,7,9,9},
{8,8,8,8,9,9,9,9,9}};
Püüdsin kirjutada ilmselt teise sudoku kirjeldust, et numbrid igas reas ja veerus oleks unikaalsed. Lisaks, et unikaalsus oleks tagatud ka igas alas (kirjeldatud eelneva massiiviga).
Oma unikaalne süsteem ja sarnasus siin on. Massiiv ja tähendus ilmselt puudulik:)
Kuid mõte iseenesest ei tundunud tobe seetõttu, et sudokusid on palju erinevaid. Seetõttu võis arvata, et ka kirjeldusi ilmselt palju erinevaid. Ning tulemuseks tuli midagi sellist:
(1,1,1,5,2,5,9,9,9)
(1,1,6,3,7,3,6,9,9)
(1,8,8,8,7,4,4,4,9)
(5,6,6,6,7,2,3,3,2)
(2,2,2,7,7,7,5,5,5)
(5,6,6,5,7,3,3,3,2)
(4,9,9,9,7,1,1,1,8)
(4,4,6,3,7,3,6,8,8)
(4,4,4,2,5,2,8,8,8));
626171848
262717484
626171848
595737959
959373595
595737959
484313262
848131626
484313262
Ja nagu ma nüüd aru sain siis ei ole siiski eesmärk täidetud erikujuline sudoku Või kirjeldus, mis on juba olemas ja eksisteerib, vaid olemasoleva sudoku (kirjeldusele) programm, mis seda loeb, et arvuti söödetud info kiiremini jõuaks visuaalseks sudokuks kuvada.
Sinu toodud näite esimene rida on: (1,1,1,5,2,5,9,9,9)
Seal reas ei ole ju kõik numbrid (1-9) unikaalsed!
Seal reas ei ole ju kõik numbrid (1-9) unikaalsed!
Ehk siis on ta sarnane alumise reaga?!