Perl Language
Randomness
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 intervallet0 ≤ VALUE < 26
. (Det kan aldrig vara26
) - 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