Přejít k hlavnímu obsahu
DL 1
  • Titulní stránka
  • Podpora uživatelů
    Moodleoffice Moodle tutoriál Podpora uživatelů Návody GDPR
  • Další
Čeština ‎(cs)‎
Čeština ‎(cs)‎ Deutsch ‎(de)‎ English ‎(en)‎ Français ‎(fr)‎ Русский ‎(ru)‎
Momentálně na stránky přistupujete s právy hosta.
Přihlášení
DL 1
Titulní stránka Podpora uživatelů Sbalit Rozbalit
Moodleoffice Moodle tutoriál Podpora uživatelů Návody GDPR
Rozbalit vše Sbalit vše
  1. Cvičení z Programování II pro pokročilé
  2. Cvičení #10
  3. Volby

Volby

Požadavky na absolvování
Termín: středa, 6. května 2020, 23.59

Mafiáni nakonec byli chytřejší, než v organizaci pro boj s organizovaným zločinem čekali. Když zjistili, že podle tradičních pravidel není žádný mafián vhodným kandidátem na kápa, rozhodli se nechat tradici tradicí a uspořádat demokratické volby. Každý mafián napsal na listeček jedno jméno – přezdívku mafiána, kterému dává svůj hlas. Všechny lístečky se pak shromáždily na jednom místě a teď se čeká na jejich spočítání. Pokud nějaký kandidát dostane aspoň polovinu všech hlasů, stane se novým kápem, v opačném případě budou muset mafiáni vymyslet nějaký jiný způsob, jak kápa zvolit.

Informátorovi se podařilo proniknout až do místnosti, kde se budou hlasy přepočítávat, a chtěl by zjistit, zda někdo získal nadpoloviční většinu hlasů a případně kdo. Zbývá mu proštrachat se úhledně poskládanou hromádkou volebních lístků na stole. Aby to nebylo tak snadné, má informátor k dispozici jen svou hlavu, ve které si dokáže zapamatovat jen konstantní množství informací. Aby se vyhnul odhalení, může navíc s hromádkou manipulovat jen velmi opatrně: vždy může nějaký volební lístek vzít, přečíst si ho, a pak ho musí zase vrátit na své místo. Pomůžete mu?

Řečeno formálněji, váš algoritmus zná celkový počet lístků N a kromě toho má k dispozici orákulum, kterého se může ptát na jméno na i-tém volebním lístku. Vaším cílem je zjistit, zda se nějaké jméno vyskytuje více než N/2-krát, přičemž smíte použít jen konstantní množství paměti. Jména jsou konstantně velká a umíte porovnávat, zda se dvě jména rovnají, ale už o nich nemůžete předpokládat nic dalšího (nejde například říct, zda je jedno jméno "menší" než druhé, nejdou hešovat atd.).

◄ Rostoucí matice
Nejmenší chybějící číslo ►
Kontaktujte podporu stránek
Momentálně na stránky přistupujete s právy hosta. (Přihlášení)
Stáhněte si mobilní aplikaci
Používá Moodle