
Como esta equação fornece números aleatórios entre max
e min
divisíveis pordivisibleBy
echo $(((RANDOM%(max-min+divisibleBy))/divisibleBy*divisibleBy+min))
Responder1
Pense nisso como trabalhar em etapas de divsibleBy
unidades vezes um número inteiro.
ignorando o RANDOM por enquanto, (max-min+divisbleBy)/divisibleBY
seria a largura do intervalo em números inteiros simples, em vez de (unidade x número inteiro), assim como (max-min+divisibleBy)
a largura em (unidade x números inteiros)
the %
é um operador de módulo para fornecer um número dentro da largura (unidade x número inteiro) de RANDOM
(que estará entre 0 e 32767 em si)
a /divisibleBy*divisibleBy
parte garante que você não obtenha um resto diferente de zero quando estiver dentro do conjunto de (unidades x inteiros)
o +min
desloca o número aleatório (que está dentro da largura) de volta para o intervalo alvo