![]() |
c# und random
hallo,
versuche mich mal wieder an c# :mrgreen: folgender code bringt mir für ersteZahl und zweiteZahl immer die gleiche Zahl:
Delphi-Quellcode:
wenn ich jetzt int ersteZahl; int zweiteZahl; Random rdm1 = new Random(); Random rdm2 = new Random(); ersteZahl = rdm1.Next(10); zweiteZahl = rdm2.Next(10); Console.WriteLine (" Erste Zahl {0:d} " , ersteZahl); Console.WriteLine (" Zweite Zahl {0:d} " , zweiteZahl); Console.WriteLine (" Ergebnis {0:d} " , ersteZahl * zweiteZahl);
Delphi-Quellcode:
mache wird ersteZahl <> zweiteZahl.
zweiteZahl = rdm1.Next(10);
kann mir da bitte mal einer erklären. danke raik |
Re: c# und random
Dein Problem ist einfach, dass beide Random instanzen mit dem gleichen seed starten werden (der System zeit ;) ).
Wenn du dann so ein grobes Fenster wie 10 verwendest kannst du dir fast sicher sein, dass du den gleichen Wert bekommst. ;) Du musst bedenken, dass die Systemzeit nur alle paar Millisekunden abgefragt wird. Es ist also sogar sehr wahrscheinlich, dass der Seed exakt gleich ist. Eine Lösung wäre eine kurze Pause zwischen der Initialisierung:
Code:
Random rdm1 = new Random();
System.Threading.Thread.Sleep(100); Random rdm2 = new Random(); ersteZahl = rdm1.Next(10); zweiteZahl = rdm2.Next(10); |
Re: c# und random
Hi,
Nicht schlecht der Hinweis beim Posten ;) Die Antwort steht im .NET SDK: Zitat:
Gruß, raziel |
Re: c# und random
danke an beide,
habe das mit Seed gelesen aber einfach ignoriert :mrgreen: raik |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz