Recherche…


Remarques

Documentation pour la fonction rand (): http://perldoc.perl.org/functions/rand.html

Générer un nombre aléatoire entre 0 et 100

Passer une limite supérieure en tant qu'argument à la fonction rand ().

Contribution:

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

print $random . "\n";

Sortie:

Un nombre à virgule flottante aléatoire, comme ...

45.8733038119139

Générer un entier aléatoire entre 0 et 9

Lancez votre nombre à virgule flottante aléatoire comme un int.

Contribution:

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

Sortie:

Un entier aléatoire, comme ...

0

Voir aussi le perldoc pour le rand .

Accéder à un élément de tableau au hasard

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

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

Comment ça marche

  • rand EXPR attend une valeur scalaire, donc @letters est évalué dans un contexte scalaire
  • Un tableau dans un contexte scalaire renvoie le nombre d'éléments qu'il contient (26 dans ce cas)
  • rand 26 renvoie un nombre fractionnaire aléatoire dans l'intervalle 0 ≤ VALUE < 26 . (Ça ne peut jamais être 26 )
  • Les index de tableau sont toujours des entiers, donc $letters[rand @letters] $letters[int rand @letters]
  • Les tableaux Perl sont indexés à zéro, donc $array[rand @array] renvoie $array[0] , $array[$#array] ou un élément entre

(Le même principe s'applique aux hachages)

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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow