ne uplne dokonale reseni
Dokonalé řešení už tu padlo. Pro vás je nerealizovatelné kvůli moc velkým počtům „prodaných lístků“. Zároveň tu už také bylo napsáno, proč žádné efektivnější řešení nemůže existovat. Takže máte tři možnosti – buď si počkat, až budou k dispozici ještě daleko lepší počítače, které ty objemy dat zvládnou, nebo si počkat, až někdo totálně překope takový základ matematiky, jako je násobení přirozených čísel, nebo slevit z požadavků na dokonalé řešení. A nebo ta náhodná čísla generovat analogově, tedy aby se generovala čísla ze spojitého intervalu – ale nevím, jak na takových „analogových“ číslech realizovat jednosměrnou (hashovací) funkci.
Kazdopadne to reseni s retezcem binarek se mi libi. Jaka je tam kritika? Pac nekdo psal ze to neni mozne a toto se me osobne libi a podle mne splnuje co chci ne?
Kritika je pořád stejná. „Řetězec binárek“ znamená, že předem vygenerujete náhodná čísla pro 2
n prodaných lístků, kde
n jsou přirozená čísla od 1 do vámi zvolené hodnoty (přičemž čísla pro nižší
n jsou ve skutečnosti odvozená od čísel s vyšším
n, takže to můžete dobře zkomprimovat). Nebo-li budete mít vygenerovaná čísla pro 2 prodané lístky, 4 prodané lístky, 8 lístků, 16, 32, 64 atd. Jenže lístků se nemusí prodat množství odpovídající mocnině dvojky, může se jich prodat 5, 17, 60… Když lístků prodáte 5, použijete náhodné číslo pro 8 lístků, jenže vám tam pořád ty 3 přebývají – buď řeknete, že nevyhrál nikdo (což nechcete), nebo ty tři pozice rozdělíte mezi prodané lístky – jenže 3 pozice nerozdělíte rovnoměrně mezi 5 lístků (pořád je to ten problém s celočíselným dělením), můžete to přidělit jenom třem lístkům, kterým zdvojnásobíte pravděpodobnost výhry (nebo to klidně můžete dát jednomu lístku, kterému pravděpodobnost zečtyřnásobíte). A úplně to samé platí i pro ostatní případy, kdy počet prodaných lístků neodpovídá mocnině dvou.