Perl Language
Aleatoriedad
Buscar..
Observaciones
Documentación para la función rand () de perl: http://perldoc.perl.org/functions/rand.html
Generar un número aleatorio entre 0 y 100.
Pase un límite superior como argumento a la función rand ().
Entrada:
my $upper_limit = 100;
my $random = rand($upper_limit);
print $random . "\n";
Salida:
Un número aleatorio de punto flotante, como ...
45.8733038119139
Generar un entero aleatorio entre 0 y 9
Emitir su número de punto flotante aleatorio como un int.
Entrada:
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";
Salida:
Un entero aleatorio, como ...
0
Véase también el perldoc para rand .
Accediendo a un elemento del array al azar
my @letters = ( 'a' .. 'z' ); # English ascii-bet
print $letters[ rand @letters ] for 1 .. 5; # prints 5 letters at random
Cómo funciona
-
rand EXPR
espera un valor escalar, por lo que@letters
se evalúa en un contexto escalar - Una matriz en contexto escalar devuelve el número de elementos que contiene (26 en este caso)
-
rand 26
devuelve un número fraccionario aleatorio en el intervalo0 ≤ VALUE < 26
. (Nunca puede ser26
) - Los índices de matriz son siempre enteros, por lo que
$letters[rand @letters]
≡$letters[int rand @letters]
- Las matrices de Perl están indexadas en cero, por lo que
$array[rand @array]
devuelve$array[0]
,$array[$#array]
o un elemento intermedio
(El mismo principio se aplica a los 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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow