本文介绍了我如何获得兰特号的特定范围()?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 函数srand(时间(空));的printf(%d个,RAND());

给出了一个高范围的随机数(0-32000ish),但我只需要大约0-63或0-127,虽然我不知道如何去做。任何帮助吗?


解决方案

 兰特()%(MAX_NUMBER + 1  -  minimum_number)+ minimum_number

因此​​,对于0-65:

 兰特()%,(65 + 1  -  0)+ 0

(很明显,你可以离开了0,但它的存在的完整性)。

请注意,这将偏向随机性略有下降,但可能没有什么可担心,如果你没有做什么特别敏感。

srand(time(null));

printf("%d", rand());

Gives a high-range random number (0-32000ish), but I only need about 0-63 or 0-127, though I'm not sure how to go about it. Any help?

解决方案
rand() % (max_number + 1 - minimum_number) + minimum_number

So, for 0-65:

rand() % (65 + 1 - 0) + 0

(obviously you can leave the 0 off, but it's there for completeness).

Note that this will bias the randomness slightly, but probably not anything to be concerned about if you're not doing something particularly sensitive.

这篇关于我如何获得兰特号的特定范围()?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-21 15:16