úterý 3. srpna 2010

Project Euler - Problem #079

Znáte telefonické ověření hesla tak, jak je například na zákaznických linkách bank?
A: "Zadejte druhé, třetí a šesté písmeno Vašeho hesla."
B: "PRD" (v případě, že heslo zní OPRAVDU)

Rozluštění odchycených odpovědí na podobné otázky je téma problému č. 79. Pokusím se nastínit myšlenku řešení.

Předpoklady: Čísla v tajném hesle se neopakují a v daných odpovědích jsou použita všechna čísla z hesla.

1. Nejdřív slovníkem zjistíme, které znaky bude heslo obsahovat.
2. Vytvoření porovnávací funkce (dvou argumentů, samozřejmě), která určí vztah mezi pozicemi jednotlivých čísel v hesle na základě daných odpovědí. K výsledku tato funkce dospěje součtem porovnání indexů předaných čísel. Například mezi čísly 1 a 9 bude hodnota vztahu -6, to znamená, že v odpovědích je šestkrát 1 před 9 (čtyři odpovědi 319, 129 a 719).
3. Setřízení znaků hesla pomocí porovnávací funkce.

Kód řešení.

Žádné komentáře:

Okomentovat