20 Comments

  1. Für all die das lesen: Ich habe eine simple Randint-Funktion geschrieben, die eine zufällige Zahl zwischen 0 & 1000 zurückgibt:

    int randint()

    {

    srand(time(0));

    int a = rand();

    srand(a);

    int b = rand();

    srand(b);

    int c = rand();

    srand(a * b – c);

    return (rand() * a + b / c) % 1001;

    }

    Viel Spaß damit

    Reply
  2. Hier ein Mini-Generator:
    double random(){
    // Seed festlegen und "warmwerdenlassen"
    srand(time(0)); rand(); rand(); rand(); rand(); rand();
    // RandomNumber generieren und auf 0-1 festlegen
    double num = static_cast<double>(rand())/RAND_MAX;
    return num;
    }
    double random(double min, double max){
    return (random()*(max-min)+min);
    }

    Reply
  3. bei mir ist das RAND_MAX nicht um den dreh 32000 sonder 2147483647 also genau das gleiche wie INT_MAX. Weißt du zufällig warum das so ist? liegt es vielleicht an eclipse oder OSX? (Ich wollte eigentlich mit visual studio for mac programmieren, was ich auch schon für c# benutze, allerdings hab ichs bisher noch nicht hinbekommen mir das richtige c++ plugin für mac zu holen)

    Reply
  4. Hi, tolles Video. War wieder mal sehr lehrreich. Mach weiter so. Aber ich verwende leider VS 15 und da "existiert" laut Compiler rand() sowie srand() nicht. Ich habe auch alles "included" wie du. Wenn es eine andere Variante gibt in VS 15 oder du weißt wie man das behebt, dann würde ich mich über ein Video oder eine einen Kommentar freuen. Danke im Voraus.

    Reply
  5. @Brotcrunsher Zeigst du auch noch die c++11 Variante um random Zahlen zu generieren, mit std::mt19937 bzw. std::default_random_engine und den uniform distributions?
    Weil die soll ja eigentlich genutzt werden, wenn man wirklich gleichmäßige Zufallszahlen erhalten will..

    Reply
  6. Das ist in C++ ja etwas dirty implementiert.
    Ist der Algorithmus dahinter so kompliziert?
    Theoretisch müsste man doch einfach nur genügend unterschiedliche Parameter nehmen (z.B. Systemzeit, Dateien im aktuellen Verzeichnis, Summe der ASCII-Werte des Benutzers vom OS, Anzahl der Schriftarten, …) und irgendwie einen Wert zwischen 0 und 1 berechnen.
    Nur der Schritt ist wahrscheinlich auch der schwieriger: Wie komme ich von einem beliebigen Wert auf einen Wert zwischen 0 und 1? Da müsste man ja doch wieder eine Range setzen…

    Reply

Post Comment