Jistě jste se jednou setkali s tím, že vám kamarád, který tvrdil, že umí číst myšlenky, provedl následující trik: Přemýšlejte o čísle mezi 1 a 10; vynásobte ho 9; sečtěte číslice výsledku (např. 23 -> 2 + 3 = 5); a od součtu odečtěte 5. V tomto okamžiku jste možná dospěli k hodnotě 4. Jak se to dozvím? Pomocí stejného triku vašeho kamaráda. Ukážu vám to pomocí jazyka Clojure. Nejprve napíšeme funkci, která sečte číslice čísla:
Hodnota se převede na řetězec, funkce map převede jednotlivé znaky číslic na seznam celých čísel a funkce apply sečte seznam celých čísel a vrátí celkový součet volajícímu funkce sum-digits. Pomocí této funkce sestavíme výpočty triku:
Funkce puzzle provede výpočty v pořadí, o které vás požádal váš kamarád. Nejprve vynásobí číslo, které jsme si mysleli, číslem 9, pak sečte číslice výsledku a nakonec odečte součet 5. Dále napíšeme další funkci pro odhalení triku:
Funkce range vytvoří posloupnost čísel od 1 do 10, kde 11 není zahrnuto (1 2 3 4 5 6 7 8 9 10). Funkce map aplikuje funkci puzzle na každé číslo v seznamu a vytvoří další seznam s výsledky. Nyní proveďte funkci unveil, abyste viděli výsledek:
Oh, podívejte! Pro rozsah 1 až 10 bude výsledek vždy 4. Jinými slovy, vzor. Vzory jsou při násobení velmi přítomné, a když je všechny odstraníte, získáte prvočísla, jak na to upozornil Mark Haddon ve své knize “Podivný případ se psem v noční době”. Daniel Tammet uvádí příklady některých vzorců ve své knize “Myšlení v číslech: Jak matematika osvětluje naše životy”. Když vynásobíme libovolné sudé číslo číslem 5, vždy dostaneme čísla končící nulou (např. 12 x 5 = 60), a když to uděláme s lichými čísly, vždy dostaneme čísla končící číslem 5. V případě čísla 9 pokaždé, když vynásobíme 9 číslem mezi 1 a 10 a sečteme jeho číslice, vždy dostaneme 9.
V posloupnosti odečtení 5 od 9 jen odvede vaši pozornost od vzorce násobení a dokonce tento trik vylepší. Například: Představte si, že každé písmeno abecedy má odpovídající číslo (A – 1, B – 2, C – 3, …). Nyní vezměte výsledek (4) a získejte jeho příslušné písmeno; myslete na zemi, která začíná na toto písmeno; vezměte čtvrté písmeno této země a myslete na zvíře, které začíná na toto písmeno. Existuje vysoká pravděpodobnost, že vaše konečná odpověď bude “Dánsko” a “opice”. Než si budete myslet, že vám čtu myšlenky, vysvětlím vám, co se právě stalo.
Předně, zemí, které začínají na “D”, čtvrté písmeno abecedy, není mnoho. Mezi Dánskem, Džibutskem, Dominikou a Dominikánskou republikou si snadno zapamatujete Dánsko. Čtvrté písmeno Dánska je “M” a žádné zvíře, které začíná na “M”, není známější než opice, která vás okamžitě napadne.
Baví mě programovat v Clojure, a to nejen proto, že Clojure je zábavné se učit a učit, ale i proto, že programování není vždy o vážných věcech. Možnost naprogramovat jen tolik kódu, aby se něco dělo, podněcuje přemýšlení, řešení problémů a kreativitu nad strukturou, vzory, konvencemi a styly. Kódování má být relaxací, ne stresem. Užijte si to!