Zdravím, mám takový příklad s kterým nemůžu pohnout:
Jedná se o to, že potřebuji vygenerovat číslo od -30 do +70 (i 0-100) ale s tím že čísla okolo 0 (v případě -30 až +70) se budou pohybovat nejčastěji a čím větší číslo, tím menší šance na vygenerování. To znamená že -30 tam padne třeba jednou z 10.000 a to samé i +70. Ale číslo 40 padne 1 ze 100 pokusů, číslo 50 jednou ze 2000, a tak dále. Nemusí to být takhle přesně jen mě nenapadá jak to vyřešit. (PS: napadlo mě zahazovat vysoká čísla na základě počítadla, ale je nepraktické to tak dělat).
Fórum › Java
Generátor náhodných čísel
Snad ti pomuze tahle stranka. Je to sice "vyssi" matematika, ale da se to pochopit.
Ak majú byť tie výsledné generované hodnoty celé čísla, tak sa to dá spraviť tak, že každej hodnote priradíš percentuálnu úspešnosť s ktorou môže padnúť. Tým sa ti rozdelí rozsah od 0 po 100% na jednotlivé intervaly podľa tých percentuálnych úspešností. Čiže ak by si mal vygenerovať jednu z týchto hodnôt z takýmito pravdepodobnosťami
1 - 20% - interval <0, 20)
2 - 40% - interval <20,60)
3 - 40% - interval <60, 100)
tak sa ti to rozdelí na
Potom vygeneruješ číslo od 0 až 1 prenásobíš ho číslom 100 a do ktorého intervalu ti padne taká celočíselná hodnota je vygenerovaná. čiže ak sa ti vygeneruje napríklad 72 tak získaš hodnotu 3.
Moc díky za rady, nicméně jsem nad tím přemýšlel a měl bych na to jinou metodu.
Každé číslo by mělo svůj počet nahodných čísel které by se generovaly u menších císel vícekrát než u vyšších:
Tím myslím
například č. 1- 95% -> 95x se vygeneruje číslo
č. 2- 90% -> 90x se vygeneruje číslo
atd. až například č. 99- 1% jednou se vygeneruje (můžou to být poměry 1:1000 atd.)
Poté by se vypsalo číslo které by mělo nejmenší odchylku od zadaného čísla.
Prosím napište mi na to svůj názor.
Akosi som nepochopil tvoj myšlienkový pochod, ale zdá sa mi, že tam chceš až moc generovať, čo môže ovplyvniť vlastnosti toho tvojho náhodného generátora. U mnou popísaného riešenia to bude pracovať určite spoľahlivo a relatívne rýchlo.
#6 Grungy
To ano, ale potřeboval by jsem určitou šanci u každého čisla jinou. Já bych chtěl naplnit pole u každého čísla zvlášť a pak by se našlo číslo nejbližší tomu kterému se to má rovnat. Tím mám na mysli, že každé číslo by pak mělo svou šanci, nadruhou stranu to bude fakt dlouhé a nejspíš dost pomalé.
Jednoduché riešenie by bolo vytvoriť pole s počtom prvkov ako si písal (nula tam bude najviac krat) a vyberať náhodný prvok
Trochu prirodzenejšie riešenie by som použil generáciu vysokého čísla a pouzil log ...Tu ale bude problém spraviť klesanie na oboch stranách
Ten gausov graf je ale najkomplexnejší a ak máš príležitosť že to už je implementované tak prečo to nepoužiť
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Generator nahodnych cisel — založil silent
Generátor náhodných čísel — založil soul
Generátor náhodných čísel s kontrolou — založil H3k70r
Java začiatočník - generator nahodnych čísel — založil Ann
Generátor náhodných čísel - úprava kódu — založil Pavel
Moderátoři diskuze