Diskuze: Generovanie pravdepodobnosti
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 5 zpráv z 5.
//= 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.
Osobně neznám nějaký algoritmus, který by to uměl udělat rychleji, než v lineárním čase. Jestliže často ty pravděpodobnosti měníš, tak si je můžeš ukládat mezivýsledky (jestli se bavíme o fitness proportionate/roulette wheel selection).
Ou. Hej hovorím o tom. Síce programujem niečo úplne iné ale princíp je rovnaký. Ako, na začiatku ak musím sčítať všetky fitness tak to je ešte v pohode lebo pri ďalších výpočtoch by som iba upravil interval náhodného generovania čísla. Ja si myslím, že existuje. Minimálne umelou inteligenciou. Skúsim vysvetliť o čo sa vlastne pokúšam.
Snažím sa spraviť testovanie v ktorom má každá otázka na začiatku rovnakú pravdepodobnosť výberu. Po nesprávnom odpovedaní na otázku, sa zväčší pravdepodobnosť výberu danej otázky. Takže sa pravdepodobnosti menia iba trochu, nič drastické.
Roymýšlal som aj nad nejakým AVL stromom ale nič rozumné mi nenapadlo.
Můžeš to udělat tak, že si vyrobíš nové pole, kde budou předpočítané hodnoty a toto pole pak projdeš binárním vyhledáváním, čímž se dostaneš na logaritmickou složitost.
Pro 1000 objektů -> max 11 porovnání, což není tak špatné.
Hmm. To by bolo už asi lepšie, miesto predgenerovania všetkých čísel predgenerovať pozície v poli. Teda miesto 1, 2, 3, 4, 5, 6, 7, 8, 9, 10... by vygenerované číslo zodpovedalo pozícií v poli, v ktorom by boli reálne pozície objektov. Teda napriklad, 0, 0, 0, 1, 1, 2, 3, 3, 3, 3, 3, 4, 4, 4... Z binárneho by som spravil konštantné. Chcel som sa však vyhnúť generovaniu veľkého pola.
Zobrazeno 5 zpráv z 5.