gpt4 book ai didi

bash - 生成一个大于特定数字的随机数

转载 作者:行者123 更新时间:2023-11-29 09:32:17 24 4
gpt4 key购买 nike

高级 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,不知道是什么问题。

最佳答案

问题可能来自溢出。假设您的 prng 生成一个介于 0 和 maxint 之间的数字。如果您简单地添加 floor,当加法给出的数字大于 maxint 时会发生什么?当然,您可以简单地拒绝这些数字,但这会导致与您提出的算法相同的算法。

根据地板的情况,可以使用一些技巧来最大程度地减少拒绝。例如,如果需要的数字大于 maxint/2,您可以在测试拒绝之前系统地设置更高的位。

关于bash - 生成一个大于特定数字的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5579789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com