Quiero generar, digamos 10 números aleatorios entre 100 y 200 (ambos incluidos). ¿Cómo lo hago con rand?
command-line
ignacio caviedes
fuente
fuente
rand
? LaRANDOM
variable?/dev/random
?/dev/urandom
?rand
o estorand
?Respuestas:
Si te refieres a la
rand
de larand
paquete (en contraposición a la de OpenSSL), no es compatible con un límite inferior, solamente un límite superior. Lo que puedes hacer es el truco shift-lower-bound-to-zero-then-add-lower-bound:-N
es la cantidad de números aleatorios que necesitas-M
sería el límite superior de lasrand
salidas de números , entonces ( max - min = 100)-e -d '\n'
establece el delimitador en una nueva línea. Eso es por conveniencia de procesamiento porawk
.El
awk
código luego toma cada línea y le agrega 100.fuente
Utilizando
python
:Salida:
Aquí he usado el
random
módulo depython
para generar 10 (range(10)
) enteros aleatorios entre 100 y 200 (incluidos) (random.randint(100, 200)
).fuente
Aquí hay una manera de Perl:
También podría usar
/dev/urandom
(adaptado de aquí ):fuente
También puedes usar
awk
:fuente
Con
shuf
GNU coreutils:fuente
Puedes usar
$RANDOM
.fuente
Versión bash
Nada espectacular: simple emulación de for loop con
i
contador ywhile
. El rango se establece usando laif . . . else . . .fi
estructura. Nota al margen: mi indicador es primero el directorio de trabajo, luego el área de entrada, así que no se confunda con lo que vebashRadom.sh
:Versión C
Este es el código que he estado usando mientras tomé la clase C en mi universidad. La pequeña edición que agregué para ajustarse a esta pregunta es el uso de argumentos de línea de comandos (en lugar de codificar valores en la fuente)
randfunc.c
:fuente
random
biblioteca: stackoverflow.com/a/19728404/2072269 , stackoverflow.com/a/19666713/2072269