Diskuze: Náhodné číslo
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 15 zpráv z 15.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
randInt() % (1000 / 13) * 13
EDIT: To nahoře je interval <0;1000), níže je (0;1000)
(randInt() + 1) % (1000 / 13) * 13
Vypočítej největší násobek čísla který je menší než horní hranice, to číslo vyděl 13 a pak použij získané číslo jako horní limit pro náhodnou generaci. Nakonec vždycky číslo které dostaneš z generátoru vynásob 13.
Musíš zachovat "rovnoměrné rozdělení", tedy ty nemůžeš například při výběru nenásobku losovat znovu.. tím bys to ovlivnil.. Číslo, co ty potřebuješ je x*13, a má to být náhodné, tedy ty potřebuješ 1000 / 13 = 76 různých možností.... tedy děláš defakto výběr náhodného číslo od 1 do 76ti. a pak to číslo vynásobíš 13ti.. získáš rozsah 13 - 988, ale jen násobky 13ti.
todle právě nemůže protože v Maxintu nemusí být všechny "modula 76ti " zastoupeny stejným počtem. Nebude to rovnoměrné rozdělení.
To je pravda. Otázka je, jestli ho trápí, že část rozsahu je tam může být zastoupena 330382099x a druhá 330382100x (za předpokladu, že moje randInt funkce vrací uint)
Promiňte ale vůbec nechápu jak funguje ta vaše funkce randInt() ...
To je nějaká funkce, co vrací náhodné celé kladné číslo.
No mě by to tedy takový brutální rozdíl celkem trápil... Kvůli toho se tvoje řešení stává takřka nepoužitelným.
Omlouvám se, jdu pověsit klávesnici na hřebík a ode dneška se budu věnovat pouze botanice.
Tak mimochodem, funkce randInt() nemá přetížení pro horní mez? Jen se ptám, dělám v C# ale vzhledem k tomu, že se jedná o .NET, mělo by to tam být. Zadání jasně znělo od 0 do 1000. Tedy
var nahodne = randInt(1000);
nahodne = ((nahodne / 13) - (nahodne % 13)) * 13;
No hlavní problém bude to, že je to výrazně pomalejší metoda, i když je pravda že co se týče délky zápisu tak vyhrává.
Proboha nemlaťte mě randInt byla nějaká pseudofunkce, neříkám, že jí .NET má
Zobrazeno 15 zpráv z 15.