
¿Cómo da esta ecuación números aleatorios entre max
y min
divisible por?divisibleBy
echo $(((RANDOM%(max-min+divisibleBy))/divisibleBy*divisibleBy+min))
Respuesta1
Piense en ello como trabajar en pasos de divsibleBy
unidades multiplicadas por un número entero.
ignorando el ALEATORIO por el momento, (max-min+divisbleBy)/divisibleBY
sería el ancho del rango en enteros simples, en lugar de (unidad x entero), también lo (max-min+divisibleBy)
es el ancho en (unidad x enteros)
es %
un operador de módulo para darle un número dentro del ancho (unidad x entero) fuera RANDOM
(que estará entre 0 y 32767)
la /divisibleBy*divisibleBy
parte se asegura de que no obtenga un resto distinto de cero cuando esté dentro del conjunto de (unidades x enteros)
esto +min
desplaza el número aleatorio (que cae dentro del ancho) nuevamente al rango objetivo