Kezdőoldal » Számítástechnika » Programozás » Hogy tudom rávenni Pascalban...

Hogy tudom rávenni Pascalban a random generátort egy konkrét kezdő értéknél, hogy ne csak egy számot dobjon ki mindig?

Figyelt kérdés
A Randseed:=x (x egy szám amit megadok) parancsal meghatároztam a random generálás kezdő értékét ami eddig jó és hasznos nekem, de ha többször lefuttatom, mindig ugyanaz a szám jön ki annál a kezdő értéknél, mivel tudnám ezt megváltoztatni, hogy ugyanazzal a kezdőértékkel 10szeri lefuttatással más számot is számoljon a random generátor ne csak ugyanazt?
2011. dec. 15. 21:05
 1/3 coopper ***** válasza:

Szia.


Ha csak a kezdő érték kell vagy csak az első 1-2 "ugyanolyan" véletlen szám akkor azután, hogy megvannak a kellő számok, vagy adsz a randseednek új értéket, vagy használod a Randomize; procedurát (amivel szintén értéket adsz a randseed-nek).


programban :


if i>=5 then randomize ;


Ami azt jelenti, hogy az első 5 "ugyanolyan" véletlenszám után új értékkel töltöd fel a Randseed változót, ezután már nem ugyanazok a véletlenszámok jönnek ki (elvileg)


Sok sikert.

Üdv.

2011. dec. 15. 21:27
Hasznos számodra ez a válasz?
 2/3 tabaki ***** válasza:

Arra gyanakszom, hogy nem érted tökéletesen a randseed szerepét. Ha egy bizonyos értéket adsz neki, akkor mindig ugyanazt a számsorozatot adja (tehát arról beszélek, ha adsz neki egy kezdőértéket, utána sokszor meghívod a random() függvényt). Igaz, hogy a sorozat emberi szemmel nézve véletlenszerű, de minden futtatáskor azonos számok jönnek ki. Ha viszont minden véletlenhívás előtt beállítod ugyanazt a számot, akkor törvényszerűen mindig ugyanazt kapod: a sorozat első tagját. Ha mondjuk alsó határt akarnál szabni egy számsorozatnak, akkor annak az a módja, hogy kérsz egy véletlenszámot, mittomén random(30) utasítással aztán hozzáadod az alsó határt, vagyis akármennyi a kapott szám, megnöveled a határérték fölé. Természetesen a program elején kell egy randomize;, amelyik a gép órájából egy tényleg kiszámíthatatlan alapértéket merít, különben a fenti megoldás is ugyanaz lesz minden futtatáskor.

Tehát: A randseed változó nem a számsorozatod határértéke, hanem egy bonyolult függvény összetevője. A függvény olyan, hogy te nem tudod megjósolni/irányítani, hogy a lehetséges tartományon belül hova esik az eredmény -- egészen kis eltérések szélsőséges különbségekre vezethetnek. Viszont a számolás ugyanúgy fut le minden alkalommal, ezért amikor a randseed változatlan, a végeredmény is az lesz.

Bocs, ha nem jól értettem a problémádat, és hülyeséget válaszoltam.

2011. dec. 16. 01:15
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:
Köszönöm a választ, nagyon hasznos volt, most már értek mindent :)
2011. dec. 16. 07:37

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!