Zufallsgenerator

jccTeq

Erfahrenes Mitglied
Hi Leute,

vermutlich ne total triviale Frage, aber ich hab keinen Dunst, wie ich unter C# einen Zufallszahlengenerator initialisiere... wie ich ihm bei jedem Aufruf einen anderen Seed gebe... kann mir das mal einer sagen? Danke!

Gruß,
Hendrik
 

Alexander Schuc

crazy-weasel
Hallo.

Code:
public class Random {
// Öffentliche Konstruktoren
	public Random();
	public Random(int Seed);
// Öffentliche Instanzmethoden
	public virtual int Next();
	public virtual int Next(int maxValue);
	public virtual int Next(int minValue, int maxValue);
	public virtual void NextBytes(byte[] buffer);
	public virtual double NextDouble();
// Geschützte Instanzmethoden
	protected virtual double Sample();
}

Wenn du einen kryptographisch starken Zuffalszahlengenerator benötigtst schau dir System.Security.Cryptography.RandomNumberGenerator an.

Mfg,
Alex
 

jccTeq

Erfahrenes Mitglied
Hi,

danke... aber irgendwie muss ich dem Randomizer doch einen Seed geben, oder nicht? Sowas, wie unter Basic
die Initialisierung des Randomizers bewirkt, oder? Einen kryptografisch starken Randomizer brauche ich eigentlich weniger. Geht nur um ein gewöhnliches Würfelspiel. :)

Danke!

Gruß, Hendrik
 

jccTeq

Erfahrenes Mitglied
Ja, aber woher bekomme ich den Wert für Seed? Ohne den Seed konstruiert mir der Randomizer immer die gleichen Werte.

EDIT: der Seed sollte ja bei jeder Initialisierung (also bei jedem Programmstart) anders sein. Normal macht man das über 'nen Unix-Timestamp... oder sowas. Woher bekomme ich den in C#?
 

Alexander Schuc

crazy-weasel
Könntest dir mit Werten aus der DateTime Klasse was zusammenbasteln.
Z.b. Tag, Monat, Jahr, Stunde, Minute, Sekunde als String verketten und in einen Int umwandeln. irgendwie blöd das kein DateTime-Objekt als Seed direkt verwendbar ist.