rand()可以用于在C中生成psudo随机数。结合RAND_MAX和一个小数学,你可以在你选择的任何任意间隔生成随机数。这足以用于学习目的和玩具程序。如果你需要真正的具有正态分布的随机数,你需要采用更先进的方法。
这将生成一个从0.0到1.0(含)的数字。
float r = static_cast (rand()) / static_cast (RAND_MAX);
这将产生一个从0.0到某个任意浮点数,X:
float r2 = static_cast (rand()) / (static_cast (RAND_MAX/X));
这将生成从一些任意LO到一些任意HI的数:
float r3 = LO + static_cast (rand()) /( static_cast (RAND_MAX/(HI-LO)));
注意,如果你需要真正的随机数,rand()函数通常是不够的。
在调用rand()之前,必须首先通过调用srand()来“随机化”随机数生成器。这应该在程序运行期间执行一次 – 不是每次调用rand()时都执行一次。这通常这样做:
srand (static_cast (time(0)));
为了调用rand或srand,你必须#include< cstdlib> ;.
要调用时间,您必须#include< ctime> ;.