Sök…


Anmärkningar

Dokumentation för perl's rand () -funktion: http://perldoc.perl.org/functions/rand.html

Generera ett slumptal mellan 0 och 100

Passera en övre gräns som argument till funktionen rand ().

Inmatning:

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

print $random . "\n";

Produktion:

Ett slumpmässigt flytande nummer, som ...

45.8733038119139

Generera ett slumpmässigt heltal mellan 0 och 9

Kasta ditt slumpmässiga flytpunktsnummer som ett int.

Inmatning:

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";

Produktion:

Ett slumpmässigt heltal, som ...

0

Se även perldoc för rand .

Åtkomst till ett arrayelement slumpmässigt

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

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

Hur det fungerar

  • rand EXPR förväntar sig ett skalvärde, så @letters utvärderas i skalärt sammanhang
  • En matris i skalärt sammanhang returnerar antalet element som den innehåller (26 i detta fall)
  • rand 26 returnerar ett slumpmässigt fraktionstal i intervallet 0 ≤ VALUE < 26 . (Det kan aldrig vara 26 )
  • Arrayindex är alltid heltal, så $letters[rand @letters]$letters[int rand @letters]
  • Perl-arrayer är nollindexerade, så $array[rand @array] returnerar $array[0] , $array[$#array] eller ett element däremellan

(Samma princip gäller hash)

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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow