Kezdőoldal » Számítástechnika » Programozás » Mi a hiba? C++ random szám.

Mi a hiba? C++ random szám.

Figyelt kérdés
[link]
2016. márc. 26. 13:37
1 2
 11/13 anonim ***** válasza:

Azért mert SimkoL kódja nem ír ki számokat, te pedig egy az egyben kimásoltad azt. A kiírás sort írd át.


Ha pedig nem Windows-t használsz akkor a system("PAUSE"); részt is szed ki mert az sem fog működni.

2016. márc. 26. 14:15
Hasznos számodra ez a válasz?
 12/13 anonim ***** válasza:

Az srand() használatát félreértetted amúgy.


A rand() sorban pl ezeket a számokat generálja le:

23 52 542 54 2


Akárhányszor újraindítod a programodat, mindig ugyan azt a számsorozatot fogod kapni, azaz nem véletlenszerű, hanem egy előre meghatározott számsorozatot kapsz: 23 52 542 54 2


Az srand átállításával más sorozatot fogsz kapni. Ha pedig az időt állítod be az srand paraméterének, akkor minden indításnál más és más sorozatot fog generálni mert mindig más az idő amit megkap.

2016. márc. 26. 14:17
Hasznos számodra ez a válasz?
 13/13 anonim ***** válasza:

Hogy tisztázzuk. A randomszámgeneráláshoz kell a rand(), és az srand() (igazából már vannak sokkal precízebb, és biztonságosabb randomszám generálók C++-ban, de most maradjunk ennél)


Az srand() kap egy integert paraméterül, és a kapott integer alapján beállítja a randomszámgenerálót. Ha az srand ugyanazt a számot kapja, akkor ugyanazt a számsorozatot fogod kapni belőle. Ezért szokták a time(NULL)-t nekiadni paraméterül, ugyanis ez minden másodpercben más számot ad vissza, így minden futtatáskor más számsorozatot állítasz elő. Ezt csinálja az srand().

A rand() az égvilágon semmi mást nem csinál, mint az srand() által beállított randomszám-generátorból kiveszi a következő számot. Fogd fel úgy, hogy az srand() összekeveri a pakli kártyát aszerint, amit neki adsz paraméterül, a rand() pedig csak felhúzza a legfelső lapot. Ha nem kevered össze a pakli kártyát, akkor ugyanazokat a lapokat fogod felhúzni. Ha pedig minden húzás után újrakevered a teljes paklit ugyanazon szabály szerint, akkor pontosan ugyanazt a lapot fogod újra és újra felhúzni. Tehát mit kell csinálni? Egyszer az elején összekevered a kártyákat (srand()), és utána sorba felhúzogatod a lapokat (rand()).

2016. márc. 26. 16:30
Hasznos számodra ez a válasz?
1 2

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!