如标题所述,我在 Freescale Coldfire 芯片上使用随机数生成器,它返回一个 32 位无符号值。据我所知,没有办法配置生成器来限制范围。将数字控制在可接受范围内的最佳方法是什么?
我正在考虑通过高范围值修改数字,但我仍然必须处理下限。
最佳答案
这篇C 常见问题解答文章How can I get random integers in a certain range?解释了如何正确生成 [M,N]
范围内的随机数,基本上您应该使用的公式是:
M + (random number) / (RAND_MAX / (N - M + 1) + 1)
关于c - 给定一个 32 位无符号随机数,如何在一定范围内操作值 [low, high]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20437378/