From e6b6cd3751522fa78fc8cca842d61e18c2ddf7a7 Mon Sep 17 00:00:00 2001 From: Tamas Bunth <tamas.bunth@collabora.co.uk> Date: Mon, 19 Mar 2018 13:01:28 +0100 Subject: [PATCH] Add readme file --- README.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..5bb111f --- /dev/null +++ b/README.md @@ -0,0 +1,56 @@ +Sudoku elemek +============= + +Feladvány +--------- + +Addot egy `NxN` méretű tábla. Ebbe a táblába kell elhelyezni pálcikákat úgy, +hogy a táblát teljesen lefedje. + +Egy `m` hosszú pálcika `m` db különböző szimbolumot tartalmaz. Úgy kell +elhelyezni a pálcikákat a táblában, hogy a tábla ne tartalmazzon olyan sort vagy +oszlpot, ami két azonos szimbólumot tartalmaz. + +A pálcikák elforgathatóak és tükrözhetőek. Pl. a { 1, 2, 3 } elem ekvivalens a { +3, 2, 1} pálcikával, és behelyezhető függőlegesen és vízszintesen is a táblába. + +Egy konkrét feladat +------------------- + +Adott egy 5x5-ös tábla. + +Az pálcikáink a következőek (Jelen esetben 3 és 2 hosszú +pálcikákat definiáltunk.) + +- 5, 4, 3 +- 4, 1, 2, +- 3, 1, 2, +- 2, 1, +- 5, 3, +- 4, 2, 3 +- 5, 4, 1, +- 1, 3, 5, +- 2, 5, 4, + +Algoritmus +---------- + +Az algoritmus a bactracking elvét követi. + +1. Inicializálunk egy üres táblát. Az elemekhez rendelünk egy sorrendet. + +2. A bal fölső sarokból az első üres helyre (az algoritmus elején ez pont a bal + fölső sarok, utána pedig olvasásirányba az első üres cella) elindulva megpróbálunk bepakolni egy pálcikát. + + - Ha a pálcikát sikeresen le tudtuk rakni, akkor folytatjuk a 2. lépésnél. + + - Ha nem sikerült lerakni, akkor megváltoztatjuk az elem elhelyezkedését + (forgatjuk) + + - Ha nem sikerült lerakni egyik állapotában sem, akkor új element próbálunk + lerarkni. + + - Ha egyik pálcikát se sikerült lepakolni, akkor felvesszük az utoljára + letett pálcikát, és folytatjuk a 2. lépésnél. + +3. A feladvány akkor van kész, ha a tábla összes cellája foglalt. -- GitLab