Je veux générer, disons, 10 nombres aléatoires entre 100 et 200 (tous deux inclus). Comment puis-je le faire avec rand?
command-line
ignacio caviedes
la source
la source
rand
? LaRANDOM
variable?/dev/random
?/dev/urandom
?rand
ou çarand
?Réponses:
Si vous voulez dire le à
rand
partir durand
paquet (par opposition à celui de OpenSSL), il ne supporte pas une limite inférieure, seule une limite supérieure. Ce que vous pouvez faire est l'astuce shift-lower-bound-to-zero-then-add-lower-bound:-N
est le nombre de nombres aléatoires dont vous avez besoin-M
serait la limite supérieure desrand
sorties numériques , donc ( max - min = 100)-e -d '\n'
définit le délimiteur sur une nouvelle ligne. C'est pour la commodité du traitement parawk
.Le
awk
code prend ensuite chaque ligne et y ajoute 100.la source
En utilisant
python
:Production :
Ici, j'ai utilisé le
random
module depython
pour générer 10 (range(10)
) entiers aléatoires entre 100 et 200 (inclus) (random.randint(100, 200)
).la source
Voici un moyen Perl:
Vous pouvez également utiliser
/dev/urandom
(adapté d' ici ):la source
Vous pouvez également utiliser
awk
:la source
Avec
shuf
de GNU coreutils:la source
Vous pouvez utiliser
$RANDOM
.la source
Version bash
Rien de spectaculaire - émulation simple de boucle for avec
i
compteur etwhile
. La plage est définie à l'aide de laif . . . else . . .fi
structure. Note latérale: mon invite fonctionne d'abord dans le répertoire, puis dans la zone de saisie, alors ne vous trompez pas sur ce que vous voyezbashRadom.sh
:Version C
C'est le code que j'ai utilisé pendant mes cours de C à mon université. La petite modification que j'ai ajoutée pour répondre à cette question consiste à utiliser des arguments de ligne de commande (au lieu de coder en dur les valeurs dans la source)
randfunc.c
:la source
random
bibliothèque: stackoverflow.com/a/19728404/2072269 , stackoverflow.com/a/19666713/2072269