この方程式はどのようにして 2 つの値の間でランダムな数値を生成するのでしょうか?

この方程式はどのようにして 2 つの値の間でランダムな数値を生成するのでしょうか?

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 (幅の範囲内)を目標範囲に戻す

関連情報