Kezdőoldal » Számítástechnika » Programozás » (C#) Miért nem működik jól a...

(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)

Figyelt kérdés

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?


[link]


[link]


2017. márc. 14. 11:04
 1/3 anonim ***** válasza:

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

2017. márc. 14. 11:24
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

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.

2017. márc. 14. 11:29
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:
Köszönöm a hasznos válaszokat! Megoldódott a probléma (1 random objektum létrehozásával még a ciklus előtt), bár az elméleti háttere még annyira nem tiszta, de majd utána olvasok. Köszönöm még egyszer!
2017. márc. 14. 18:20

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!