
max
この方程式はどのようにして、min
からで割り切れる乱数を生成するのか?divisibleBy
echo $(((RANDOM%(max-min+divisibleBy))/divisibleBy*divisibleBy+min))
答え1
divsibleBy
単位×整数のステップで作業すると考えてください。
RANDOMを今のところ無視すると、(max-min+divisbleBy)/divisibleBY
範囲の幅は(単位×整数)ではなく、単純な整数で表され、(max-min+divisibleBy)
幅は(単位×整数)で表されます。
これは%
、(単位 x 整数)幅内の数値を返すモジュロ演算子ですRANDOM
(0 から 32767 の範囲になります)。
この/divisibleBy*divisibleBy
部分は、(単位×整数)のセット内でゼロ以外の剰余が得られないことを確認します。
乱数+min
(幅の範囲内)を目標範囲に戻す