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?
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.
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.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!