Sluha kradne* kráľovi víno.
Na začiatku je v sude 100 litrov vynikajúceho vína.
Prvý deň vypije jeden liter vína. Doleje jeden liter pramenitej vody a premieša.
Druhý deň vypije jeden liter riedeného vína. Doleje jeden liter pramenitej vody a premieša.
Tretí deň vypije jeden liter o čosi viac riedeného vína. Doleje jeden liter pramenitej vody a premieša.
A mieni tak pokračovať pokiaľ bude v sude viac ako polovičná koncentrácie vína.
Koľko dní si môže takto popíjať (za predpokladu, že ho nechytia a nikto iný zo suda neberie)?
*Sluha to všetko robí pre svoje aj kráľove zdravie a tiež preto aby vznikla táto úloha.
Nadpis by mal pomôcť pri riešení. (Ak viete čo-to zo zloženého úrokovania.)
Riešenie
Úlohu je možné riešiť viacerými spôsobmi.
Úplne amatérske spôsoby používajú vo výpočtoch aj vodu. brrrrr. Tieto spôsoby vynecháme. S množstvom vody sa totiž netreba zaoberať. Ak je objem suda \(V\) litrov a množstvo vína je \(v\) litrov, tak je jasné, že vody je \((V – v)\) litrov (ak je sud plný).
Popíšeme síce amatérsky ale rozumný spôsob, bez vody – je nutné mu rozumieť aj keď s ním nie je veľmi pohodlné počítať. Abstinenti môžu počítať iba s vodou – postup je podobný a rovnako dobrý.
- Nultý deň je v sude 100 litrov vína, čo je aj jeho trvalý objem (po dopĺňaní vodou).
- Prvý deň sluha zoberie jeden liter a v sude ostane 99 litrov vína.
- Druhý deň zoberie zo suda liter zmesi. Koľko je v nej vína? Keďže v sude je 99 litrov vína a objem suda (zmesi) je 100 litrov, tak zmes má \(\frac{99}{100}\) percent vína, preto sluha odoberie \(\frac{99}{100} \cdot 1\) litra vína. (Berie 1 liter, preto násobíme 1. Vidíme, že možno budeme vedieť vypočítať aj úlohu, v ktorej sa kradne ľubovoľné množstvo vína.) V sude ostane \(99 -\frac{99}{100} \cdot 1=\frac{9801}{100}=98,01\) litrov vína. Podvedomá kontrola: Zobral jeden liter zmesi, nie čisté víno. Preto neubudne celý liter vína, a preto musí v sude viac než 98 litrov vína. Tak nám to aj vyšlo, super. Množstvo vína, ktoré sluha berie sa každý deň zmenšuje, pretože zmes je čoraz redšia.
- Tretí deň zoberie zo suda liter zmesi. Koľko je v nej vína? Keďže v sude je 98,01 litrov vína a objem suda je 100 litrov, tak zmes má \(\frac{98,01}{100}\) percent vína, preto sluha odoberie \(\frac{98,01}{100} \cdot 1\) litra vína. V sude ostane \(98,01-\frac{98,01}{100} \cdot 1=97,0299\) litrov vína.
- Štvrtý deň zoberie zo suda liter zmesi. Koľko je v nej vína? Keďže v sude je 97,0299 litrov vína a objem suda je 100 litrov, tak zmes má \(\frac{97,0299}{100}\) percent vína, preto sluha odoberie \(\frac{97,0299}{100} \cdot 1\) litra vína. V sude ostane \(97,0299-\frac{97,0299}{100} \cdot 1=96,059601\) litrov vína.
- A takto si môžeme trénovať prácu s kalkulačkou ešte 65x.
Kto má aký-taký pozorovací talent určite si všimol, že sme opakovane robili ten istý výpočet, len vždy s predchádzajúcim výsledkom. Tento proces sa nazýva iterovanie, jeden krok výpočtu sa nazýva iterácia. Na také výpočty je vhodné vedieť trošku programovať. Alebo použiť tabuľkový kalkulátor, čo riadok to jeden deň, pričom napíšeme výpočet iba raz a potiahnutím ho skopírujeme dole. Dá sa to urobiť aj krátkym príkazom =SCAN(100;SEQUENCE(69);LAMBDA(a;b;a-a/100)), ktorý zobrazí výsledky pre prvých 70 dní. Funguje v nových Exceloch aj Google Tabuľkách. Funkcia SCAN sa ale nachádza snáď vo všetkých moderných tabuľkových kalkulátoroch a programovacích jazykoch (dajú sa očakávať rozdiely v použití alebo názvoch – napríklad, vo Wolfram Mathematica sa táto funkcia nazýva NestList a príkaz NestList[#-#/100.&,100,69] urobí to isté čo Scan vyššie). Funkcia REDUCE tiež funguje nových Exceloch aj Google Tabuľkách, používa sa rovnako ako Scan a zobrazí iba záverečný výsledok.
Kto má ešte väčší pozorovací talent ten si určite všimol, že v prvý krok (100-1), je ten istý výpočet ako v nasledujúcich dňoch \((100-\frac{100}{100}\cdot1)\), Takže môžeme urobiť iterácie (jednotlivé kroky) všeobecne: Od aktuálneho množstva vína odčítame počet litrov patrične upravený percentami. Percentá vypočítame tak, že aktuálne množstvo vína predelíme celkovým objemom.
\(v_1=v_0\ – \frac{v_0}{V}\cdot m =v_0\cdot\frac{ V-m}{V}\), (dali sme na spoločného menovateľa a vyňali \(v_0)\), budeme používať tento posledný výraz.
\(v_0\) – pôvodné množstvo vína v sude (nultý deň)
\(v_1\) – množstvo vína v sude po prvom odbere, obdobne bude \(v_2\), \(v_3\)
\(V\) – objem suda (presnejšie: množstvo zmesi v sude)
\(m\) – množstvo odoberanej zmesi, všetko je v litroch (hlavne aby to boli rovnaké jednotky)
Vieme, že druhá iterácia je ten istý postup, len použijeme predchádzajúci výsledok a potom za \(v_1\) dosadíme \(v_0\cdot\frac{ V-m}{V}\):
\(v_2=v_1\cdot\frac{V-m}{V}=v_0\cdot\left(\frac{ V-m}{V}\right)^2\)
Vieme, že tretia iterácia je ten istý postup, len použijeme predchádzajúci výsledok a potom za \(v_2\) dosadíme \(v_0\cdot\left(\frac{ V-m}{V}\right)^2\):
\(v_3=v_2\cdot\frac{V-m}{V}=v_0\cdot\left(\frac{ V-m}{V}\right)^3\)
Malo by byť už jasné, že v \(d\)-ty deň bude v sude
\(v_d=v_0\cdot\left(\frac{ V-m}{V}\right)^d\) litrov vína.
A tak sme sa dostali k profi riešeniu:
Ak \(v_0=V=100\) a \(m=1\) potom:
\begin{align}
v_0\cdot\left(\frac{ V-m}{V}\right)^d&= 50\\
100\cdot 0,99^d &= 50\\
0,99^d &= 0,5\\
\log 0,99^d &= \log 0,5 \\
d \cdot\log 0,99 &= \log 0,5\\
d &= \frac{\log 0,5}{\log 0,99}\\
d &\approx 68.9 \\
\end{align}
Odpoveď: 69 dní.
Amatérsky ale rozumný spôsob mal predsa len jednu výhodu (okrem toho, že nás doviedol k profi riešeniu), nebolo treba vedieť používať logaritmy (to je podobná výhoda, ako keď kopete krompáčom kanál a tešíte sa z toho, že nemusíte vedieť obsluhovať bager).
Hlavnou výhodou profi riešenia, že nepotrebujeme počítať postupne 1., 2., … 69. deň, ale výsledok máme priamo.
Množstvo vína v jednotlivých dňoch (zaokrúhlené na 18 desatinných miest):
\begin{array}{cc}
0 & 100.00000000000000000 \\
1 & 99.000000000000000000 \\
2 & 98.010000000000000000 \\
3 & 97.029900000000000000 \\
4 & 96.059601000000000000 \\
5 & 95.099004990000000000 \\
6 & 94.148014940100000000 \\
7 & 93.206534790699000000 \\
8 & 92.274469442792010000 \\
9 & 91.351724748364089900 \\
10 & 90.438207500880449001 \\
11 & 89.533825425871644511 \\
12 & 88.638487171612928066 \\
13 & 87.752102299896798785 \\
14 & 86.874581276897830797 \\
15 & 86.005835464128852489 \\
16 & 85.145777109487563965 \\
17 & 84.294319338392688325 \\
18 & 83.451376145008761442 \\
19 & 82.616862383558673827 \\
20 & 81.790693759723087089 \\
21 & 80.972786822125856218 \\
22 & 80.163058953904597656 \\
23 & 79.361428364365551679 \\
24 & 78.567814080721896162 \\
25 & 77.782135939914677201 \\
26 & 77.004314580515530429 \\
27 & 76.234271434710375125 \\
28 & 75.471928720363271373 \\
29 & 74.717209433159638660 \\
30 & 73.970037338828042273 \\
31 & 73.230336965439761850 \\
32 & 72.498033595785364232 \\
33 & 71.773053259827510589 \\
34 & 71.055322727229235484 \\
35 & 70.344769499956943129 \\
36 & 69.641321804957373697 \\
37 & 68.944908586907799960 \\
38 & 68.255459501038721961 \\
39 & 67.572904906028334741 \\
40 & 66.897175856968051394 \\
41 & 66.228204098398370880 \\
42 & 65.565922057414387171 \\
43 & 64.910262836840243299 \\
44 & 64.261160208471840866 \\
45 & 63.618548606387122458 \\
46 & 62.982363120323251233 \\
47 & 62.352539489120018721 \\
48 & 61.729014094228818534 \\
49 & 61.111723953286530348 \\
50 & 60.500606713753665045 \\
51 & 59.895600646616128394 \\
52 & 59.296644640149967110 \\
53 & 58.703678193748467439 \\
54 & 58.116641411810982765 \\
55 & 57.535474997692872937 \\
56 & 56.960120247715944208 \\
57 & 56.390519045238784766 \\
58 & 55.826613854786396918 \\
59 & 55.268347716238532949 \\
60 & 54.715664239076147619 \\
61 & 54.168507596685386143 \\
62 & 53.626822520718532282 \\
63 & 53.090554295511346959 \\
64 & 52.559648752556233489 \\
65 & 52.034052265030671155 \\
66 & 51.513711742380364443 \\
67 & 50.998574624956560799 \\
68 & 50.488588878706995191 \\
69 & 49.983702989919925239 \\
\end{array}