Skocz do zawartości
zinek

Losowanie Liczb W C# Proszę O Pomoc

Rekomendowane odpowiedzi

Witam. Mam problem z losowaniem liczb w C#. Robie to w ten sposób:

 

Random losuj = new Random();

double y;

y = losuj.NextDouble();

 

Chodzi o losowanie liczb z zakresu (0;1). Problem w tym, że program często losuje takie same liczby, jakby to robił w jednym wątku procesora. Jeśli natomiast dołożę instrukcję:

 

Thread.Sleep(10);

 

program losuje znacznie lepiej (im siększa wartość sleep tym lepiej). Tylko, że czas losowania baaaardzo się wydłuża z wiadomych względów. Program losuje bardzo dużo tych liczb i nie mogę sobie pozwolić na taki czas. Program powinien działać pare sekund, tymczasem przy losowaniu np. 10000 liczb losuje pare minut.

 

Jak zadbać, żeby generowane liczby były rzeczywiście losowe (bez powtórzeń) i żeby nie było opóźnień???

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jesli tworzysz nowy obiekt Random do kazej liczby, a losujesz je w petli to nie ma co sie dziwic. Domyslnie Random jest inicjowany aktualnym czasem (ale z dokladnoscia do sekundy), wiec jesli potworzysz kilka obiektow Random w jednej sekundzie to wszystkie beda losowaly takie same liczby. Musisz zmienic podejscie.. jeden obiekt random na caly program inicjowany tylko raz na starcie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...