Suche…


Bemerkungen

Dokumentation für die rand () - Funktion von Perl: http://perldoc.perl.org/functions/rand.html

Erzeugen Sie eine Zufallszahl zwischen 0 und 100

Übergeben Sie eine Obergrenze als Argument an die Funktion rand ().

Eingang:

my $upper_limit = 100;
my $random = rand($upper_limit);

print $random . "\n";

Ausgabe:

Eine zufällige Fließkommazahl, wie ...

45.8733038119139

Erzeugen Sie eine zufällige ganze Zahl zwischen 0 und 9

Verwandeln Sie Ihre zufällige Fließkommazahl als int.

Eingang:

my $range = 10;

# create random integer as low as 0 and as high as 9
my $random = int(rand($range));   # max value is up to but not equal to $range

print $random . "\n";

Ausgabe:

Eine zufällige ganze Zahl, wie ...

0

Siehe auch den Perldoc für Rand .

Zufälliger Zugriff auf ein Array-Element

my @letters = ( 'a' .. 'z' );                # English ascii-bet

print $letters[ rand @letters ] for 1 .. 5;  # prints 5 letters at random

Wie es funktioniert

  • rand EXPR erwartet einen skalaren Wert, sodass @letters im skalaren Kontext ausgewertet wird
  • Ein Array im skalaren Kontext gibt die Anzahl der darin enthaltenen Elemente zurück (in diesem Fall 26).
  • rand 26 gibt eine zufällige gebrochene Zahl im Intervall 0 ≤ VALUE < 26 . (Es kann nie 26 )
  • Array-Indizes sind immer Ganzzahlen, also $letters[rand @letters]$letters[int rand @letters]
  • Perl-Arrays sind $array[rand @array] gibt also $array[0] , $array[$#array] oder ein Element dazwischen zurück

(Das gleiche Prinzip gilt für Hashes)

my %colors = ( red   => 0xFF0000,
               green => 0x00FF00,
               blue  => 0x0000FF,
             );

print ( values %colors )[rand keys %colors];


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow