Jens Wolle: Zufallszahlgenerator

Hallo! Ich bastel grade an einem Perl Programm rum, bei dem ich eine Zufallszahl zwischen 1 und 20 und einmal eine zwischen 1 und 6 generieren möchte. (jaja, ein würfel) Kennt da jemand zufällig den Quellcode für sowas? Wär prima, wenn ihr mir ne "sub" posten könntet. Ok, tschüss erstmal.......Jens

  1. Hallo Jens

    Hallo! Ich bastel grade an einem Perl Programm rum, bei dem ich eine Zufallszahl zwischen 1 und 20 und einmal eine zwischen 1 und 6 generieren möchte. (jaja, ein würfel) Kennt da jemand zufällig den Quellcode für sowas? Wär prima, wenn ihr mir ne "sub" posten könntet. Ok, tschüss erstmal.......Jens

    print &Zufallszahl(1,20);
    print &Zufallszahl(1,6);

    sub Zufallszahl
    {
    srand();
    return int(rand($_[1] - $_[0] + 1)) + $_[0];
    }

    Gruss
    Andreas

    1. sub Zufallszahl
      {
      srand();
      return int(rand($_[1] - $_[0] + 1)) + $_[0];
      }

      hallo andreas,
      hälst du es wirklich für sinnvoll, das "srand" innerhalb des sub auszuführen?

      1. Hallo Karl

        hälst du es wirklich für sinnvoll, das "srand" innerhalb des sub auszuführen?

        Du hast Recht. Falls mehrere Zufallszahlen nacheinander gebraucht werden, würden sie sich natürlich wiederholen.

        Gruss
        Andreas

  2. rand liefert eine Zufallszahl z. 0 und 0,99999999...

    beachte auch den Befehl "srand";

    für den würfel:

    $x = int(rand(6)+1);

    sollte funzen

    1. $x = int(rand(6)+1);

      Es ist durchaus sinnvoll, den Zufallsgenerator zu initialisieren, damit er einen möglichst zufallsähnlichen Wert liefert.

      Soetwas ist nicht schlecht:

      srand (time ^ $$ ^ unpack "%L*", /bin/ps axww /usr/bin/gzip);

      cu,
      Peter