¿Cómo da esta ecuación números aleatorios entre dos valores?

¿Cómo da esta ecuación números aleatorios entre dos valores?

¿Cómo da esta ecuación números aleatorios entre maxy mindivisible por?divisibleBy

echo $(((RANDOM%(max-min+divisibleBy))/divisibleBy*divisibleBy+min))

Respuesta1

Piense en ello como trabajar en pasos de divsibleByunidades multiplicadas por un número entero.

ignorando el ALEATORIO por el momento, (max-min+divisbleBy)/divisibleBYserí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*divisibleByparte 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

información relacionada