Ive erhielt eine Klasse Bevölkerung mit seinem Konstruktor:Warum bekomme ich im Debug-Modus Zufallszahlen?
private Individual[] m_population;
public Population() {
m_population = new Individual[POP_SIZE];
for (int i = 0; i < POP_SIZE; i++) {
m_population[i] = new Individual();
m_population[i].randGenes();
}
//some other code here
}
innerhalb der einzelnen Klasse I die Methode für randGenes haben():
Random rand2 = new Random((int) DateTime.Now.Ticks & 0x0000FFFF);
public void randGenes()
{
for (int i = 0; i < SIZE; ++i)
{
for (int j = 0; j < SIZE; j++)
{
this.setGene(i, j, rand2.Next(1));
}
}
}
Ich brauche nur einen Satz von 25 radnom 1 und 0 für jeder der 10 Personen. Aber ich bekomme immer das gleiche Set für jede der 10 Personen, wenn ich noch mehr damit spiele, bekomme ich nur 0s. Es ist nur, wenn ich den Debug-Modus betrete, dass ich wirklich zufällige Zahlen bekomme. Ich sehe überall, dass das neue zufällige außerhalb der Methode und/oder der Schleife erstellt werden sollte, was ich tat, weiß ich nicht, was als nächstes zu tun?
BEARBEITEN Meine Frage war kein Duplikat dieser Frage, weil die dort angegebene Antwort mir nicht geholfen hat. Was mir jedoch geholfen hat, war die Antwort, die ich unten vergeben habe.
Das löste es, ich habe versucht, statische Random verwenden, aber ich habe nicht die Datetime als Seed verwendet ... – Vrankela
Sie sollten wahrscheinlich die DateTime Seed komplett weglassen, da dies das Standardverhalten ist sowieso. Gut zu hören, dass es jetzt sowieso für dich funktioniert :) – Warrick