AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

c# und random

Ein Thema von kiar · begonnen am 19. Mär 2005 · letzter Beitrag vom 19. Mär 2005
Antwort Antwort
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#1

c# und random

  Alt 19. Mär 2005, 18:49
hallo,

versuche mich mal wieder an c#

folgender code bringt mir für ersteZahl und zweiteZahl immer die gleiche Zahl:
Delphi-Quellcode:

    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);
wenn ich jetzt  zweiteZahl = rdm1.Next(10); mache wird ersteZahl <> zweiteZahl.

kann mir da bitte mal einer erklären.

danke raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: c# und random

  Alt 19. Mär 2005, 19:18
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);
  Mit Zitat antworten Zitat
raziel

Registriert seit: 6. Jun 2004
19 Beiträge
 
Delphi 7 Personal
 
#3

Re: c# und random

  Alt 19. Mär 2005, 19:19
Hi,

Nicht schlecht der Hinweis beim Posten

Die Antwort steht im .NET SDK:
Zitat von .NET Framework SDK:
Initializes a new instance of the Random class, using a time-dependent default seed value.
Alternativ zu Roberts Lösung kannst Du dem Konstruktor auch einen Seed übergeben.

Gruß,
raziel
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#4

Re: c# und random

  Alt 19. Mär 2005, 19:39
danke an beide,

habe das mit Seed gelesen aber einfach ignoriert

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz