Úložky

Za vyřešení následujících úložek získáte body do celkového hodnocení soutěže o velké ceny. Úložky můžete řešit v libovolném pořadí. Řešení odevzdávejte Milanovi nebo Martinovi v ústně-písemné podobě.

Kuličky – odevzdávání úlohy již bylo ukončeno

2 body

Pomocí rovnoramenných vah nalezněte falešnou kuličku mezi 13 na nejmenší počet vážení. V jednom případě nemusíte určit, zda je falešná kulička lehčí nebo těžší.

Faktoriál – odevzdávání úlohy již bylo ukončeno

2 body

Najděte poslední nenulovou číslici v čísle 390626!.

RSA – odevzdávání úlohy již bylo ukončeno

2 body

Rozložte číslo 1209035770830184832839919 na součin prvočinitelů.

Nevěra

3 body

V jednom městě se rozmohla nevěra, což starosta ráno prvního dne oznámil všem obyvatelům. Proto přijali následující opatření: V poledne se všichni muži sejdou a každý na všech ostatních (kromě sebe) uvidí, zda je jejich žena nevěrná. Sám o sobě to neví. Pokud je si muž stoprocentně jistý, že je mu jeho žena nevěrná, musí ji hned potom v noci vyhnat z domu. Dvě noci se nic nedělo a třetí noc bylo několik žen vyhnáno z domu. Kolik jich bylo a jak jste na to přišli?

Vypínač

3 body

Skupina 100 vězňů dostala od bachaře nabídku, že budou všichni propuštěni z vězení, pokud vyhrají v následující hře: V místnosti je dvojpolohový vypínač, na začátku vypnutý. Každý den je do místnosti vpuštěn právě jeden náhodný vězeň a ten může vypínač nastavit na libovolnou polohu. Žádným jiným způsobem spolu vězni komunikovat nemohou. Cílem vězňů je spolehlivě poznat, zda už byli v místnosti všichni, což může nahlásit vězeň, který je u vypínače. Hra tímto končí. Vězňové si mohou předem domluvit spolehlivou strategii. Poradíte jim, jakou?

Velbloud – odevzdávání úlohy již bylo ukončeno

3 body

Jste na poušti a vaším úkolem je do 1000 km vzdálené oázy dopravit co nejvíce banánů. K dispozici máte 3000 banánů a jednoho velblouda, který unese nejvýše 1000 banánů. S velbloudem je však potíž, nebo vždy po ujití 1 km mu musíte dát (alespoň) jeden banán, jinak vám chcípne. Kolik lze do oázy dopravit nejvíce banánů, aniž by velbloud chcípl? Nepočítají se (samozřejmě) banány ve velbloudově žaludku.

Pytel – odevzdávání úlohy již bylo ukončeno

3 body

Hrajete následující hru: V pytli máte několik kuliček bílé a několik černé barvy. V každém tahu z pytle vytáhnete dvě kuličky. Mají-li stejnou barvu, vložíte do pytle místo nich jednu bílou kuličku, mají-li různou barvu jednu černou. Hra skončí, jestliže v pytli zbývá poslední kulička. Dokážete určit její barvu, víte-li, že na začátku bylo v pytli m bílých a n černých kuliček?

Patnáctka

3 body

Jsou všechny pozice Loydovy patnáctky řešitelné? Jestliže ne, které ano a které ne? Proč?

Jestli nevíte, jak se hraje patnáctka, můžete se podívat na následující stránku.

Prvočíselné čtverce

3 body

Prvočíselný čtverec je matice 4×4, její prvky jsou cify 0-9 a platí pro ní následující pravidla:

  • každý řádek, pokud ho pochopíme (zleva doprava) jako číslo v desítkové soustavě, je čtyřciferné prvočíslo.

  • každý sloupec, pokud ho pochopíme (shora dolů) jako číslo v desítkové soustavě, je čtyřciferné prvočíslo.

  • žádná dvě prvočísla (ani v řádku ani ve sloupci ani mezi řádkem a sloupcem) nejsou stejná.

Součtem prvočíselného čtverce myslíme součet šestnácti jednotlivých cifer.

Vaším úkolem je zjistit počet prvočíselných čtverců se součtem 35.

Faktoriál v XQuery

2 body

Napište XQuery dotaz, který zjistí, kolik je nul na konci čísla 390626!.

Tuto úlohu odevzdávejte Jirkovi.

Sirky

3 body

Na třech hromádkách se nachází (a,b,c) sirek. Hrají dva hráči, pravidelně se střídají. Hráč na tahu si vybere hromádku a odebere z ní libovolný nenulový počet sirek. Prohrává hráč, který už nemůže táhnout [(0,0,0) sirek]. Vymyslete strategii pro začínajícího hráče, aby vyhrál, kdykoliv je to možné, a dokažte to o ní.

Závorky

3 body

Posloupnost, která se skládá ze znaků '(' a ')' nazveme dobře uzávorkovanou, pokud je

  • prázdná

  • '(X)', kde X je dobře uzávorkovaná

  • 'XY', kde X a Y jsou dobře uzávorkované posloupnosti

Sestavte vzoreček, který pro zadané N vrátí počet dobře uzávorkovaných posloupností s N otevíracími závorkami.

Kameny

3 body

Uvažujme následující hru: Hra se hraje se čtyřmi figurkami, které jsou umístěny na čtyřech různých polích herního plánu. Herní plán je tvořen políčky označenými čísly jedna, dva, tři atd. V každém tahu hráč přesune jednu z figurek na libovolné políčko s nižším číslem. Figurka však nesmí přeskočit žádnou jinou figurku, tj. všechna políčka mezi novou a starou pozicí musí být prázdná. Navíc na žádném políčku nesmí být zároveň dvě figurky. Hra skončí, pokud figurky stojí na políčkách s čísly 1 až 4. Vyhrál ten hráč, který udělal poslední tah. Za jakých podmínek a jak si dokážete zajistit výhru, budete-li začínat?

Vyřešíte-li úlohu pro dvě figurky, získáte 1 bod.

Mocnina

2 body

Navrhněte, jak pomocí konstantního počtu operací (plus, minus, krát, děleno, bitové and, or, xor, negace a bitové posuvy) zjistit, zda je zadané číslo mocnina dvojky.

Prolog I.

1 bod

Napište v Prologu predikát, který rozdělí zadaný seznam na seznam sudých členů a seznam lichých členů.

Tuto úložku odevzdávejte Janě.

Prolog II.

3 body

Napište v Prologu predikát, který otočí zadaný seznam v lineárním čase.

Tuto úložku odevzdávejte Janě.

Prolog III.

2 body

Napište v Prologu výpočet n-tého Fibonacciho čísla v lineárním čase.

Tuto úložku odevzdávejte Janě.

Prolog IV.

2 body

Najděte v Prologu prostřední prvek seznamu bez použití aritmetiky.

Tuto úložku odevzdávejte Janě.