Randomize

Von: , Frage gestellt am Do, 1. Feb 2001

Hallo,
ich suche nach eineer moeglichkeit in C++ randomize (zufaellige zahlen in eine variable zu bringen.
Ich kenne aber den befehl nicht um eine zufaellige zahl zu generieren.
Ich habe den rand() und srand() schon angeguckt, aber da sind es immer die gleichen nummern. Gibt es da noch andere moeglichkeiten??
thx

Steffen

5 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde hilfreich
    Re: Randomize

    rand und srand sind schon ok, du mußt bloß wissen, wie man sie benutzen muß:

    srand produziert für rand sozusagen einen Startwert, der dann dazu führt, daß zufällig Zahlen von rand erzeugt werden. Wenn du natürlich für srand jedesmal die selbe Zahl nimmst, kommt natürlich immer dasselbe raus.

    Versuch' doch z.B. mal Speicher zu allokieren - die Adresse, an der dein Zeiger mit dem Array beginnt ist 'ne ziemlich zufällige Sache, denke ich. Übergib' doch einfach mal nach einer Allokation einfach mal diese Zeigeradresse an srand als Startparameter.

    FLorian

    • Antwort von nach 4 Stunden hilfreich
      Re^2: Nachtrag

      rand und srand sind schon ok, du mußt bloß wissen, wie man sie
      benutzen muß:

      srand produziert für rand sozusagen einen Startwert, der dann
      dazu führt, daß zufällig Zahlen von rand erzeugt werden. Wenn
      du natürlich für srand jedesmal die selbe Zahl nimmst, kommt
      natürlich immer dasselbe raus.

      Versuch' doch z.B. mal Speicher zu allokieren - die Adresse,
      an der dein Zeiger mit dem Array beginnt ist 'ne ziemlich
      zufällige Sache, denke ich.
      Nicht immer. Hin und wieder (bei dem selben Rechner) gibt es die selbe Adresse.
      Üblicherweise nimmt man die Systemzeit zur Initialisierung.

      Gruß Frank :-)

      • Antwort von nach 22 Stunden hilfreich
        Re^3: Nachtrag

        Hallo, es funkztioniert teilweise. Leider ist es dann nur eine andere zahl, jede sekunde, also nicht so optimal.
        ich kann mich erinnern, dass es in TURBO PASCAL (ich weiss, vergleich ist nicht soooooo gut) einen einzigen befehl gab, der einwandfrei funktioniert hat.
        THX trotzdem

        Steffen

        • Antwort von nach einem Tag hilfreich
          Re: Nachtrag

          Moin, Hallo, es funkztioniert teilweise. Leider ist es dann nur eine
          andere zahl, jede sekunde, also nicht so optimal.
          Stimmt, das war mißverständlich.

          srand(time(NULL) + getpid());
          for (int i = 0; i < 1000; i++)
          {
          cout << rand() % INT_MAX << endl;
          }
          

          Steht auch in der manpage.

          Thorsten

  2. Antwort von nach 11 Stunden hilfreich
    Re: Randomize

    Moin, ich suche nach eineer moeglichkeit in C++ randomize
    (zufaellige zahlen in eine variable zu bringen.
    Ich kenne aber den befehl nicht um eine zufaellige zahl zu
    generieren.
    srand(time(NULL) + getpid());
    int zufall = rand() % INT_MAX;

    (Bin immer noch zu faul nachzusehen, ob rand() int oder long ist)

    Thorsten

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!