Zadanie

Keď Kubko pristál v Tokiu, bol ohúrený. Všade okolo videl pokémonov, a to dokonca aj takých, o ktorých ani samotný Jožo nepočul. Nedávny rozmach pokémonov dospel až do štádia, keď pre každé kladné celé číslo existoval práve jeden pokémon. Dokonca, sa medzi pokémonmi rozmohol špeciálny druh evolúcie, v ktorom sa z dvoch pokémonov stane jeden nový. V starom chráme našiel Kubko o tejto evolúcii nasledovné zápisky:

  1. \(a \otimes a = a + 2\),

  2. \(a \otimes b = b \otimes a\),

  3. \(\dfrac{a \otimes (a+b)}{a \otimes b} = \dfrac{a+b}{b}\).

Rozlúštil, že \(a \otimes b\) značí číslo pokémona, ktorého dostaneme spojením pokémonov s číslami \(a\), \(b\). V zápiskoch sa teda píše:

  1. Keď spojíme dvoch pokémonov s rovnakým číslom, výsledkom je pokémon s číslom o \(2\) väčším.

  2. Pri spájaní dvoch pokémonov nezáleží na poradí, v ktorom ich spájame.

  3. Pre ľubovoľné kladné celé čísla \(a\), \(b\) platí: Ak zoberieme číslo pokémona vzniknutého spojením pokémonov s číslami \(a\), \(a+b\) a vydelíme ho číslom pokémona vzniknutého spokením pokémonov \(a\), \(b\), dostaneme rovnaké (racionálne) číslo ako \((a+b)/b\).

Pokémona s akým číslom dostaneme, ak spojíme pokémonov Wartortle (číslo \(8\)) a Charmeleon (číslo \(5\))?

Nachádzame sa v situácii, kedy máme nejakých dvoch pokémonov a pravidlá, ktoré platia pre ich spájanie. Musíme sa nejak posunúť ďalej, a keďže máme len tieto pravidlá, ktoré vieme aplikovať na ľubovoľných pokémonov (prirodzené čísla), tak ich vyskúšame na tých našich.1 Prvé nám nepomôže, nemáme 2 rovnakých pokémonov. Druhé nám tiež nepomôže, keď sa chceme niekam posunúť, tak nám ostáva použiť tretie, t. j. \[\dfrac{a \otimes (a+b)}{a \otimes b} = \dfrac{a+b}{b}.\]

Naši pokémoni majú čísla \(8\) a \(5\). Kebyže si dosadíme \(a=8\), \(b=5\), tak v čitateli nám vyjde \(8\otimes (8+5)\), teda táto hodnota je závislá od spojenia pokémonov \(8\) a \(13\), a takto by sme pokračovali do nekonečna (keďže sa nám budú čísla pokémonov, ktorých hodnotu chceme zistiť, stále zvyšovať). Zvolíme teda inú taktiku a posnažíme sa dostať v čitateli \(8\otimes 5\), resp. \(5\otimes 8\), keďže nezáleží na poradí. Dosadíme si \(a=5\), \(b=3\) a skutočne nám vyjde nasledovný tvar \[\dfrac{5 \otimes (5+3)}{5 \otimes 3} = \dfrac{5 \otimes 8}{5 \otimes 3} = \dfrac{5+3}{3}.\]

Výborne! Z tohoto si vieme vyjadriť hodnotu \(5 \otimes 8\), ibaže tá je závislá od hodnoty \(5\otimes 3\): \[5\otimes 8 = (5\otimes 3)\cdot \dfrac{5+3}{3}.\]

Tak pre pokémonov \(5\) a \(3\) spravíme rovnaký postup ako pri \(5\) a \(8\) a takto budeme pokračovať dovtedy, kým nebudeme vedieť použiť nejaké iné pravidlo, ktoré nám bude vedieť povedať priamo hodnotu evolúcie, \[\dfrac{3 \otimes (3+2)}{3 \otimes 2} = \dfrac{3 \otimes 5}{3 \otimes 2} = \dfrac{3+2}{2}.\]

Tieto kroky spravíme aj pre \(3\otimes 2\): \[\dfrac{2 \otimes (2+1)}{2 \otimes 1} = \dfrac{2 \otimes 3}{2 \otimes 1} = \dfrac{2+1}{1}.\]

Následne dostaneme \(2\otimes 1\) a takúto situáciu: \[\dfrac{1 \otimes (1+1)}{1 \otimes 1} = \dfrac{1 \otimes 2}{1\otimes 1} = \dfrac{1+1}{1}.\]

Čo je výhra, lebo na \(1\otimes 1\) už vieme využiť prvé pravidlo evolúcie, \(a\otimes a = a+2\), teda \(1\otimes 1 = 1+2 = 3\) a môžeme veselo dosádzať. Hodnotu 3 si dosadíme za \(1\otimes 1\), z výsledku dostaneme hodnotu \(1\otimes 2\) ktorú zas dosadíme do predošlého kroku a takto sa dostaneme až k výsledku. \[\dfrac{1 \otimes 2}{3} = \dfrac{2}{1}\text{, teda }1\otimes 2 = \dfrac{2\cdot3}{1} = 6.\]

Toto bude samozrejme platiť aj pre \(2\otimes 1\), keďže nezáleží na poradí spájania. Pokračujeme ďalej s touto hodnotou, \[\begin{aligned} \dfrac{2 \otimes 3}{2 \otimes 1} = \dfrac{2 \otimes 3}{6} = \dfrac{2+1}{1} = 3,&\qquad\text{teda } 2\otimes 3 = 6\cdot 3 = 18,\\ \dfrac{3 \otimes 5}{3 \otimes 2} = \dfrac{3 \otimes 5}{18} = \dfrac{3+2}{2} = \dfrac{5}{2},&\qquad\text{teda } 3\otimes 5 = 18\cdot \dfrac{5}{2} = 45,\\ \dfrac{5 \otimes 8}{5 \otimes 3} = \dfrac{5 \otimes 8}{45} = \dfrac{5+3}{3} = \dfrac{8}{3},&\qquad\text{teda } 5\otimes 8 = 45\cdot \dfrac{8}{3} = 120.\end{aligned}\]

Dostali sme sa k tomu, čo sme chceli, že spojením pokémonov s číslami \(5\) a \(8\) dostaneme pokémona s číslom \(120\), teda pokémona s menom Staryu2.


  1. Takýto prístup je dobré využiť aj pri iných úlohách, kde máme v zadaní podmienku, ktorá má platiť pre všetky čísla (či už prirodzené, reálne alebo nejaké iné). Príp. aj v situácii, keď takú podmienku objavíme počas riešenia. Keď niečo platí pre všetky čísla, bude to platiť aj vtedy, keď si dosadíme konkrétne hodnoty. S takýmito úvahami sa môžete stretnúť napr. pri funkcionálnych rovniciach, kde dosádzanie konkrétnych hodnôt do podmienky je často prvým krokom ako si môžete pozrieť napr. v úlohe Kvalitnejší Mirov Seminár.↩︎

  2. https://bulbapedia.bulbagarden.net/wiki/Staryu_(Pok%C3%A9mon)↩︎

Diskusia

Tu môžte voľne diskutovať o riešení, deliť sa o svoje kusy kódu a podobne.

Pre pridávanie komentárov sa musíš prihlásiť.