Náhodné číslo – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Náhodné číslo – C / C++ – Fórum – Programujte.comNáhodné číslo – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Jakub Vojáček
~ Moderátor
0
Grafoman
11. 3. 2006   #1
-
0
-

Pros?m, jak se generuje n?hodn? ??slo v ur?it? mno?in????

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
Reklama
Reklama
Jura_0
Stálý člen
11. 3. 2006   #2
-
0
-

Blujacker napsal:

Prosím, jak se generuje náhodné číslo v určité množině?


Treba takto:


srand(time(NULL)) // inicializace generatoru pseudonahodnych cisel
cout << "Nahodne cislo od 0 do RAND_MAX(" << RAND_MAX<<") je "<< rand() % RAND_MAX <<endl;
cout << "Nahodne cislo od 0 do 9 je "<< rand() % 10 <<endl;
cout << "Nahodne cislo od 5 do 15 je "<< rand()%11+5<<endl;

A myslim, ze princip(odcitani, pricitani...) si uz odvodis sam. Jen napovim, ze rand() % 5 losuje cisla od 0 do 4. Jinak takhle se generuji pouze cela cisla. Kdyby jsi potreboval generovat cisla s pohyblivou desetinou carkou, tak to se dela trochu jinak.

Nahlásit jako SPAM
IP: ...–
25. 3. 2006   #3
-
0
-

Mohl by to někdo vysvětlit tak abych to pochopil? Mě by se ty náhodná čísla taky hodili a zkoušel sem to, cot tady sem dal jura_ a nějak mi to nefungovalo. Komplimátor mi pořád hlásil chyby.

Nahlásit jako SPAM
IP: ...–
char zz = 167; cout << "Jak jde " << zz << "ivot?\n";
Matěj Pácha0
Super člen
25. 3. 2006   #4
-
0
-

Tak ke generov?n? n?hodn?ch ??sel slou?? v z?kladn? verzi (tj.d? se i jinak) funkce rand() Ta generuje n?hodn? ??slo v rozsahu int. N?hodnost je jen strojen?, je to takzvan? pseudon?hodnost. ??slo se po??t? z tzv. sem?nka, kter? je mo?n? inicializovat funkc? srand(). Pokud se tak nestane, n?hoda bude pravd?podobn? p?i ka?d?m nov?m spu?t?n? programu stejn?. Funkce tedy ze sem?nka vypo??t? pseudon?hodn? ??slo v rozsahu integer. Abychom dostali ??slo v n?mi definovan?m rozsahu, pou?ijeme zbytek po celo??seln?m d?len? (funkce modulo), v jazyku C ps?no "% X", kde X je jmenovatel d?len?. Tak dostaneme pseudon?hodn? ??slo v rozsahu 0-X. Je jasn?, ?e pokud chceme ??slo od 5 do 10, mus?me nejprve z?skat ??slo od 0 do 5 a potom k v?sledku p?i??st 5, tj.
cislo=rand()%5 +5;

Zb?v? tedy u? jen inicializace sem?nka. Nejn?hodn?j?? n?hodu dostaneme, pokud jako sem?nko pou?ijeme ?as, kter? se v?dy m?n?, tj. srand(time(NULL)); Inicializace sem?nka mus? b?t na za??tku programu, sta?? jednou, proto?e sem?nko se po ka?d?m vol?n? funkce rand() zm?n? s dostate?nou n?hodnost?, proto?e prvotn? hodnota byla d?ky srand(time(NULL)) n?hodn?.
Sta?

Nahlásit jako SPAM
IP: ...–
Ajem tíčr, andrgraund tíčr!
25. 3. 2006   #5
-
0
-

Super, d?k, u? mi to funguje.

Nahlásit jako SPAM
IP: ...–
char zz = 167; cout << "Jak jde " << zz << "ivot?\n";
2. 7. 2006   #6
-
0
-

1) Ak chces generovat nahodne cislo v intervale <1; 10>,
tak by si mal vzdy pouzit spravnu a prenositelnu
reprezentaciu (vyuziva sa tu nasobenie
nahodnym cislom z intervalu <0;1)):

number=1+(int)(10.0*(rand()/(RAND_MAX+1.0)));

a nikdy nepouzivaj:

number=1+(rand()% 10);

2) pred samotnym pouzivanim generatora nahodnych cisel,
by mal byt inicializovany (naplneny) [srand, random, ...]

Nahlásit jako SPAM
IP: ...–
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, 123 hostů

Podobná vlákna

Náhodné číslo — založil Xeror

Nahodne cislo — založil Zelenáč

Náhodné číslo — založil paking

Nahodne cislo — založil Marek Čačko

Moderátoři diskuze

 

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