Como essa equação fornece números aleatórios entre dois valores?

0

Como essa equação fornece números aleatórios entre max e min divisíveis por divisibleBy

echo $(((RANDOM%(max-min+divisibleBy))/divisibleBy*divisibleBy+min))
    
por munish 17.05.2016 / 14:04

1 resposta

3

Pense nisso como trabalhando em etapas de divsibleBy unidades vezes um número inteiro.

ignorando o RANDOM no momento, (max-min+divisbleBy)/divisibleBY seria a largura do intervalo em inteiros simples, em vez de (unit x integer), então (max-min+divisibleBy) é a largura em (unit x inteiros)

o % é um operador de módulo para fornecer um número dentro da largura (unit x integer) de RANDOM (que estará entre 0 e 32767)

a parte /divisibleBy*divisibleBy garante que você não está recebendo um resto diferente de zero quando dentro do conjunto de (unidades x inteiros)

o +min muda o número aleatório (que está dentro da largura) de volta para o intervalo de destino

    
por 17.05.2016 / 14:54