Generátor náhodných čísel – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Generátor náhodných čísel – Java – Fórum – Programujte.comGenerátor náhodných čísel – Java – Fórum – Programujte.com

 

Eddie
~ Anonymní uživatel
8 příspěvků
16. 4. 2013   #1
-
0
-

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).

Nahlásit jako SPAM
IP: 46.183.64.–
Mixxy
~ Anonymní uživatel
179 příspěvků
17. 4. 2013   #2
-
0
-
Nahlásit jako SPAM
IP: 195.212.29.–
sleepy0
Stálý člen
17. 4. 2013   #3
-
0
-

Pripadne v classe Random mas taku metodu, ze nextGausian() -> ti generuje cisla s normalnym rozdelenim priamo okolo 0.

Nahlásit jako SPAM
IP: 158.195.204.–
Grungy0
Super člen
17. 4. 2013   #4
-
0
-

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.

Nahlásit jako SPAM
IP: 158.193.83.–
Prvý náznak hlúposti, je pocit geniality.
Eddie
~ Anonymní uživatel
8 příspěvků
17. 4. 2013   #5
-
0
-

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.  

Nahlásit jako SPAM
IP: 46.183.64.–
Grungy0
Super člen
18. 4. 2013   #6
-
0
-

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.

Nahlásit jako SPAM
IP: 158.193.83.–
Prvý náznak hlúposti, je pocit geniality.
Eddie
~ Anonymní uživatel
8 příspěvků
18. 4. 2013   #7
-
0
-

#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é.

Nahlásit jako SPAM
IP: 46.183.64.–
Flowy0
Věrný člen
20. 4. 2013   #8
-
0
-

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ť 

Nahlásit jako SPAM
IP: 85.237.227.–
https://github.com/Flowy
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 36 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý