在高级Bash脚本编程指南章中9.3. $RANDOM: generate random integer产生一个随机数比特定数量多
它说明了如何产生比具体数目更大的随机数:
FLOOR=200
number=0 #initialize
while [ "$number" -le $FLOOR ]
do
number=$RANDOM
done
echo "Random number greater than $FLOOR --- $number"
echo
然后评论说:
# Let's examine a simple alternative to the above loop, namely
# let "number = $RANDOM + $FLOOR"
# That would eliminate the while-loop and run faster.
# But, there might be a problem with that. What is it?
我认为它仍然是随机的,并且大于$FLOOR
,所以我不知道它是什么问题。
我不认为这是一个bash的具体问题,更是一个PRNG问题。我猜这会损害生成的随机数的质量,要看这个空间以获得一个合格的答案:) – Torp 2011-04-07 11:14:09
感谢您的建议:DI编辑标题和标记 – Vayn 2011-04-07 11:32:38
我也有同样的问题 – Tracy 2011-04-07 11:38:14