Zadanie
Moreplavec Fernão de Magalhães si pred plavbou na svoju loď naložil 100 sudov s čerstvou chrumkavou kapustou postupne s hmotnosťami 10, 20, 30, …, 1000 kilogramov. Bohužiaľ, kapusta mu v niekoľkých sudoch skvasila, čím prišla o svoju chrumkavosť. Jeho pobočník Enrique de Malacca mu však po tom, ako sa na lodi popýtal ostatných námorníkov, čo vedia o sudoch, oznámil: „Nezúfaj, síce neviem presne ktoré sudy skvasili. Ale stále viem zo všetkých sudov vybrať 19 sudov s čerstvou chrumkavou kapustou tak, že spolu budú vážiť aspoň 14060 kilogramov. Dokonca bez ohľadu na to, ktoré sudy ti skvasili.“ Zistite, koľko najviac sudov mohlo Magalhãesovi skvasiť.
Vieme, že niekoľko sudov s kapustou sa pokazilo a že zo zvyšných sudov sa dá vybrať 19 takých, že majú dokopy aspoň 14060 kilogramov. Keďže nevieme ktoré sudy presne sa pokazili, musíme rátať s najhorším možným prípadom – že sa pokazili tie najťažšie sudy. Nič nám nebráni zaradom skúšať odoberať najťažšie sudy a pozerať sa, či zo zvyšných stále ešte vieme vybrať 19 s dostatočnou váhou.
Toto skúšanie nie je príliš náročné – vždy vezmeme 19 najťažších sudov ktoré sa nepokazili a pozrieme sa akú majú spolu váhu. Ak raz narazíme na situáciu kedy sa pokazilo n sudov a zo zvyšných sudov 19 najťažších nemá váhu aspoň 14060 kilogramov, vieme, že n je príliš veľké a muselo sa pokaziť menej sudov.
Skúšať zaradom všetky možnosti až kým nenarazíme na tú správnu vie byť ale celkom otrava, môžeme si to teda ešte zjednodušiť. Predpokladáme, že nastal najhorší možný prípad, teda že sa pokazili najťažšie sudy 1000, 1000−10, …, 1000−10n+10). Hľadáme vlastne postupnosť 19 za sebou idúcich sudov 1000−10n, 1000−10n−10, …, (1000−10n−180) so súčtom váh ktorý je väčší alebo rovný 14060. Túto nerovnosť vieme zapísať pomocou počtu pokazených sudov n takto:
(1000−10n)+(1000−10n−10)+⋯+(1000−10n−180)≥14060
Z toho vyplýva, že n musí byť menšie alebo rovné 17, preto sa mohlo pokaziť najviac 17 sudov.
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ť.