(C#) Miért nem működik jól a kódom? Miért kapok más eredményt, ha rendesen futtatom (ilyenkor rossz eredményt kapok), mint amikor F11-el végigpörgetem (ilyenkor jó eredményt kapok)? (forrásfájl mellékelve)
Ha F5-tel (vagy ctrl+f5-tel) futtatom, akkor az összes objektum X és Y adattagja megegyezik (kiíratásnál ezért 10 sorban ugyanaz a számpár jelenik meg), míg az F11-es végigpörgetésnél rendesen random számpárok jelennek meg egymás alatt. Mitől lehet ez?
A kód megnézése nélkül, mert a Random-od time seed alapján hozod létre, ami gyors futásnál minden objektumnál ugyanaz lesz.
Megoldás 1: egy Random objektumod legyen
Megoldás 2: más seedet használj
A Random nem teljesen véletlen számokat generál, hanem a bemenet (alapesetben a rendszeridő) alapján véletlenszerűnek tűnő számsorozatot. Ha rendesen futtatod a programot akkor villámgyorsan lefut és minden Random hívásnak ugyanaz lesz a bemenete és így a kimenete is, míg léptetésnél eltelik némi idő így megváltozik a bemenet.
Egy lehetséges megoldás hogy cikluson kívül egyetlen Random objektumot hozol létre és abból merítesz értékeket.
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!