Random-Funktion

  • C#

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Random-Funktion

    Guten Tag, ich habe in C# einen kleinen Code geschrieben:

    GML-Quellcode

    1. Random = new Random();
    2. for(i=0;i<4;i++){
    3. dist[i] += Random.Next(1,5);}
    4. for(i=0;i<4;i++){
    5. if (dist[i] > 100){
    6. MessageBox.Show(i);}}


    Der Code addiert zufällig große Zahlen mit den Variablen "dist".
    Das Problem ist aber, dass, egal wie oft ich den skript starte, IMMER dist[2] zuerst 100 erreicht. IMMER.
    Sogar der exakte Ablauf ist immer gleich. Stimmt da was mit der Random-Funktion nicht?
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von levarris07 ()

  • Ich programmiere zwar gerade nicht mit c# aber das Problem bei einer Random Funktion ist meist das selbe.
    Denn diese werden mit der verstrichenen Zeit berechnet. Wenn die Funktion also kurzzeitig hintereinander verwendet wird,
    sind diese höchstwahrscheinlich identisch.

    Ich habe nach kurzem Suchen etwas gefunden, wo das gut erklärt wird. Auch eine ersatzfunktion steht drin, falls
    man bessere zuafallszahlen braucht :p

    Ich hoffe es bringt dir was.
    Link


    MfG
  • Danke für die Hilfe, habe den Fehler aber bereits selbst gefunden.
    Der eigentliche Code sah etwas anders aus, als der, den ich gepostet habe. (Wäre zuviel gewesen.)

    Ich habe die Random-Funktion einfach außerhalb der einzelnen Klassen definiert, sodass alle Instanzen auf die selbe Random-Instanz zugreifen.
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • Benutzer online 1

    1 Besucher