Sudoku i podobu jeho hracího pole určitě každý zná. Následující vzorec, použitý v algoritmu pro validaci řešení této hry, mi přijde docela zajímavý a rád bych se o něj podělil. Text jsem pojal jako svěží úlohu na procvičení logiky, pokud máte chuť, můžete zkusit najít chybu ve vzorci pro získání pvků n-tého podčtverce hracího pole.
Zadání:
Je dán čtverec sudoku o 9x9 sloupcích, v němž je
- 9 řádků
- 9 sloupců
- 9 malých čtverců o rozměru 3x3
Hledáme předpis funkcí
- R(n), která by pro čísla 1..9 vrátila všechna čísla n-tého řádku
- S(n), která by pro čísla 1..9 vrátila všechna čísla n-tého sloupce
- C(n), která by pro čísla 1..9 vrátila všechna čísla n-tého vnitřního podčtverce
Například:
- R(1) = 1, 2, 3, 4, 5, 6, 7, 8, 9
- R(4) = 28, 29, 30, 31, 32, 33, 34, 35, 36
- S(2) = 2, 11, 20, 29, 38, 47, 56, 65, 74
- S(5) = 5, 14, 23, 32, 41, 50, 59, 68, 77
- C(1) = 1, 2, 3, 10, 11, 12, 19, 20, 21
- C(5) = 31, 32, 33, 40, 41, 42, 49, 50, 51
Přitom pro hrací pole platí:
vzorec pro n-tý řádek:
vzorec pro n-tý sloupec:
a přibližně tento vzorec pro n-tý podčtverec:
Úkolem je opravit chybu ve vzorci pro n-tý podčtverec.
Hezké luštění :-).
Poznámka:
div je celočíselné dělení, např. 5 div 3 = 1
mod je zbytek po celočíselném dělení (modulo), např. 5 mod 3 = 2