這個方程式如何給出兩個值之間的隨機數?

這個方程式如何給出兩個值之間的隨機數?

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

相關內容