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 intervalo 0 ≤ VALUE < 26 . (Nunca puede ser 26 )
  • 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