Zufallszahl durch uninitialisierte Variablen



  • Immer krieg ich da 4330927. Warum wird immer der selbe Wert ausgegeben? Das sieht für mich aus, als wenn der Compiler die doch initialisiert. 😡

    das war im release-modus.
    da kann ein cout<<"haus"<<endl; vor cout<<i<<endl; schon gewaltigen einfluß haben.
    edit: sorry, hab editieren statt zitieren gedrückt. forum ist nicht geeignet für mich.

    es stand da: dank eines tips von SP hab ich nen tollen zufallgenerator gefunden, int i;cout<<i; ist aber seltasamerweise nicht ganz zufällig.



  • Moderne Compiler initialisieren oft Variablen. Es kann natürlich auch einfach sein, dass deine Variable immer am selbem Ort im Speicher abgelegt wird. Nach einem Neustart oder dem Aufruf von Programmen kann ein anderer Wert herauskommen.
    Als Zufallsgenerator ist die Methode VÖLLIG ungeeignet. Merk dir das.



  • Der Beitrag ist irgendwie kaputt gegangen



  • 😃 Zufallszahlen durch uninitialisierte pointer, das das funktioniert ist wohl eher Zufall. 😃

    Die Wahrscheinichkeit dieselben Ergebnisse zu bekommen ist wesentlich höher, als das jedesmal was anderes drinsteht.
    Oftmals ist es eine Frage des OS was mit dem Speicher beim Programmaufruf passiert, manche gehen hin und stellen sicher das solche Uninitilsierten Pointer nicht irgenwohin sondern in das Datensegments des Programms zeigen und diese Segmente werden oftmals initialisiert, ander lassen solle pointer zwangsweise auf NULL zeigen.

    👎 Somit ist das ein ziemlich unsicheres Verfahren.

    Am besten für normale Fälle ist

    C/C++ Code:

    srand(time(0)); 
    for (i=0;i<10000;i++) 
     printf("%i",rand);
    
    C/C++ Code: 
    .........
    

    Man beachte srand ist außerhalb der Schleife.

    Schau mal unter
    http://www.c-plusplus.net/forum/viewtopic.php?t=43015
    beziehungsweise auch unter
    http://www.c-plusplus.net/forum/viewtopic.php?t=43587

    Ich poste hier nochmal 2 Links zu interessanten Seiten über Zufallszahlen, falls man
    qualitativ bessere Zufallszahlen braucht.

    Man beachte den folgenden Link
    [url]http://www.thomas-fahle.de/pub/perl/Diverses/Zufallszahlen.html [/url]
    als Kurzeinführung
    oder google mal nach Zufallszahlen

    Habe hier eine Seite gefunden die sich mit Zufallszahlen auseindersetzt
    [url]http://www.agner.org/random/ [/url]

    🙂

    Gibt es eigentloich eine Möglichkeit einen Link auf einen anderen Thread zu setzen???




Anmelden zum Antworten