这个方程如何给出两个值之间的随机数?

这个方程如何给出两个值之间的随机数?

这个方程如何给出max和之间的min随机数divisibleBy

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

答案1

将其视为按divsibleBy单位乘以整数的步骤进行工作。

暂时忽略 RANDOM,这(max-min+divisbleBy)/divisibleBY将是普通整数的范围宽度,而不是(单位 x 整数),因此(max-min+divisibleBy)是(单位 x 整数)的宽度

%一个模运算符,为您提供一个在(单位 x 整数)宽度内的数字RANDOM(其本身介于 0 和 32767 之间)

/divisibleBy*divisibleBy部分确保在(单位 x 整数)集合内不会得到非零余数

+min 随机数(落在宽度内)移回目标范围

相关内容