Logická hádanka - algoritmus nad čtvercem Sudoku

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

  • 81 buněk
  • 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

 

 

Autor: Dušan Saiko | neděle 13.11.2011 9:30 | karma článku: 8,74 | přečteno: 1339x