Tajemný stroj na čokoládu
Úloha Bobříka informatiky z roku: 2020
, kategorie: Kadet
obtížnost: Lehká,
kód úlohy: 2020-KR-08
autor: Jihye Kim
Kuba vynalezl tajemný stroj na čokoládu. Jak můžeme vidět na obrázku, stroj má nahoře 2 otvory.
- Když Kuba nalije do obou tunelů mléko, do sklenice vyteče čokoláda.
- Stroj funguje i obráceně. Když Kuba nalije do obou otvorů čokoládu, do sklenice vyteče mléko (obrázek).
- Když Kuba spojí dva takové stroje za sebe a nalije do obou tunelů čokoládu, do sklenice vyteče opět čokoláda (obrázek níže).
Zelený rozdělovač nemá na mléko žádný efekt.

Co by měl Kuba nalít do horních otvorů, tak abychom si byli jisti, že spojením tří strojů podle obrázku vyteče do sklenice mléko?

Zdůvodnění správné odpovědi
K vytvoření mléka je potřeba, aby do obou horních otvorů spodního stroje tekla čokoláda. Proto musí Kuba do obou horních rozdělovačů nalít mléko. Jak se mléko mění, můžeme podrobně vidět na obrázku. Správná odpověď je tedy mléko, mléko.
Protože nevíme nic o tom, co se stane, když do každého z otvorů nalejeme jinou kombinaci nápojů, nemůžeme si být jisti, že do sklenice vyteče požadovaný nápoj.
Co má tato úloha společného s informatikou
Elektrické obvody, které obdrží jednu nebo více logických hodnot, provádí s nimi operace a vytvářejí jednu logickou hodnotu, se nazývají logické obvody. Logické operace jsou AND (A), OR (NEBO), NOT (NE) a NAND (opačný výstup funkce AND)
- A NAND B = NOT (A AND B)
Zajímavé je, že všechny logické operace se dají vyjádřit pomocí NAND:
- NOT A = A NAND A
- A AND B = (A NAND B) NAND (A NAND B)
- A OR B = (A NAND A) NAND (B NAND B)
V naší otázce bílé mléko vyjadřuje logickou hodnotu 0, čokoláda vyjadřuje 1 a stroj na mléko je funkce NAND. Když nalijeme bílé mléko (0) do obou otvorů (vstupů) získáme čokoládu. 0 NAND 0 = 1.
Přesně řečeno, v zadání úlohy nemáme popsáno, co se stane, když nalejeme do jednoho otvoru mléko a do druhého čokoládu. Pokud by stroj na mléko byl funkce NAND, pak by v těchto případech také vznikla čokoláda: 0 AND 1 = 0, opačným výstupem je 1. Kdybychom se ale rozhodli, že čokoláda je 0 a mléko 1, pak by smícháním mléka a čokolády vzniklo vždy mléko.
Jak je důležité vše přesně pojmenovat a popsat!