Kezdőoldal » Számítástechnika » Programozás » (C++) Random szám generátor?

(C++) Random szám generátor?

Figyelt kérdés

int res;


void random()

{

srand (time (NULL));

res = rand() %2 + 1;

}


azt szeretném, hogy 1-et vagy 2-t adjon, de hiába rakom FOR-ba, hogy 100-szor lefusson, mindig vagy csak 1-et vagy csak 2-t ad



2016. dec. 28. 22:44
 1/6 anonim ***** válasza:
100%
Az srand(time(NULL)) ne legyen a ciklusban.
2016. dec. 28. 22:49
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:
Istenem... köszönöm, egész nap emiatt szenvedtem akkor :D
2016. dec. 28. 22:51
 3/6 anonim ***** válasza:
100%
Az srand() egy megadott seed alapján előállít egy random számsort. Ha ugyanaz a seed, ugyanazt a számsort kapod. Azzal, hogy az srand() bele van rakva a ciklusba, mindig új számsort generál az aktuális idő alapján, így mindig a számsor első elemét fogod venni. A dolgot tetézzük azzal, hogy a time() az aktuális időt MÁSODPERCBEN adja vissza, így egy másodpercen belül ugyanazt a seedet fogja kapni az srand, és ugyanazt a számsort generálja le, aminek ugyanazt az első elemér veszed. Csak hogy értsd azt is, hogy miért nem volt jó amit elsőnek csináltál, ne csak azt, hogy nem volt jó.
2016. dec. 28. 23:07
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:
100%

Azt csak extraként emelném ki, hogy az efféle függvényhasználat borzasztó rossz.

Ahelyett, hogy a függvényed visszaadná a véletlenszerűen generált értéket egy külső változót módosít mellékhatásként.

Ezzel csak egy dolgot érsz el: követhetetlen, karbantarthatatlan, tesztelhetetlen kódod lesz.


A kód helyesen:

int random()

{

return rand() %2 + 1;

}

2016. dec. 28. 23:22
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

Illetva a void random() függvény szerepel a cstdlib-ben (stdlib.h):

* [link]

szóval nem ajánlatos újradefiniálni azt, a GCC kiabál is érte:

[link]


Szimplán használd a rand() függvényt a cikluson belül:

* [link]

2016. dec. 28. 23:33
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:
C++ nyelven éles kódban már nem használják a C-s rand függvényt. [link]
2016. dec. 29. 16:37
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!