如何从C函数兰特较大的随机数() [英] How to get a larger random number from the c function rand()
问题描述
我在一个编码环境,我只使用一些最基本的C函数。 #include'ing其他的lib是行不通的。
I am in a coding environment where I only have access to some most basic c functions. #include'ing other lib is not feasible.
在这种环境下,我可以调用rand(),这也是我之间0〜32767(含)(我认为)在我的环境的随机数。在下面的code正确的逻辑来得到均匀分布就像一个更大的随机数/作为RAND()?
In this environment, I can call rand() which gives me a random number between 0 to 32767 inclusively(I think) in my environment. Is the following code the right logic to get a larger random number that is evenly distributed like/as rand()?
RNUM = RAND()*(32767 + 1)+兰特();
推荐答案
RNUM =(RAND()<< 15)| RAND()
可能会更快,但如果你需要高质量的随机数字,你应该寻找一个外部的库。内置的随机函数是通常足够仅在最简单的应用程序。
rnum = (rand() << 15) | rand()
might be faster, but if you need good quality random numbers you should look for an external library. Built-in random functions are generally adequate only for the simplest applications.
这篇关于如何从C函数兰特较大的随机数()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!