Générer des nombres aléatoirement.

Lorsqu’on développe il arrive qu’on souhaite générer des chiffres qui retournera une valeur différente aléatoirement. En Perl pour ce faire, il y a la fonction rand. Cette fonction prend en argument un paramètre qui représentera la tranche qu’on souhaite avoir.

#!/usr/bin/perl
my $rand = int(rand(10));
print $rand, "\n";

Ce très court exemple génère des chiffres entier1 aléatoire compris entre 0 et 9. C’est très bien, mais il arrive parfois qu’on souhaite générer des chiffres entre une certaines bornes. Cela m’est d’ailleurs arrivé très récemment dans un de mes projets que je présenterai prochainement. Pour ce faire, j’ai commencé par essayer très naïvement de lui passer un paramètre en plus, pour lui indiquer à quel chiffre commencer.

#!/usr/bin/perl
my $rand = int(rand(5, 10));
print $rand, "\n";

Mais cela ne fonctionne pas, rand ne prend qu’un argument. La solution est finalement très simple et plutôt logique, c’est Book qui me l’a fournie. Il suffit de faire un calcul.

#!/usr/bin/perl
my $rand = 5 + int(rand(5));
print $rand, "\n";

Avec cette petite addition on a bien le résultat souhaité. On va additionner 5 avec une valeur qui sera compris entre 0 et 4.

  1. On utilise la fonction int pour avoir uniquement des entiers
Vus : 729
Publié par Hobbestigrou : 195