如何从c函数rand()中获取更大的随机数

Fai*_* Ng 4 c random

我在一个编码环境中,我只能访问一些最基本的c函数.#include'ing其他lib是不可行的.

在这种环境中,我可以调用rand(),它在我的环境中给出了一个介于0到32767之间的随机数(我认为).下面的代码是正确的逻辑,以获得像/ rand()一样均匀分布的更大的随机数吗?

rnum = rand() * (32767 + 1) + rand();

Lee*_*ker 5

rnum = (rand() << 15) | rand()可能会更快,但如果你需要高质量的随机数,你应该寻找一个外部库.内置随机函数通常仅适用于最简单的应用程序.