
這個方程式如何給出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
隨機數(落在寬度內)移回目標範圍