对于(i=0;我
("%d/n", rand() % 100);
0;
除了上述之外,还需要补充一点的是,srand函数一定要放在循环之外或者循环调用之外,否则会得到同样的数字。
来自 MSDN 的示例。
// 。C
// 这种子 -
// 随着时间,然后是 10。
//
#
#
#
int 主函数(无效)
整数我;
// 用时间播种 - 以便
// 每次我们运行时都会如此。
//
srand( ()时间( NULL ) );
// 10.
for( i = 0; i < 10; i++ )
(“%6d/n”,rand());
(“/n”);
// ,你会想要一个范围内的,
// 比如0到100,像这样:
整数=0;
整数=100;
对于 (i = 0; i < 10; i++)
int = ((() 兰特() /
() ) * + );
(“%6d/n”,);
兰特用法总结:
我们知道rand()函数可以用来生成随机数,但这并不是真正意义上的随机数。 它是基于数字的伪随机数。 我们可以称其为种子。 它是基于一定的递归。 通过公式计算出的系数,当数列非常大时,与正常发表的一致,相当于生成随机数,但这并不是真正的随机数。 当计算机正常开机时,这个种子的值是固定的。 是的,除非你破坏了系统,否则为了改变这个种子的值,C提供了srand()函数。 它的原型是void srand(int a)。 函数是
初始化随机生成器是rand()函数的初始值,即使种子值改为a; 由此可以看出,通过sand()函数,我们可以生成一个可预测的随机序列,
那么我们如何生成不可预测的随机序列呢? 我们可能经常需要这样的随机序列,对吧。 使用srand(()(time(NULL))是一种方法,因为每次运行程序的时间都不一样。顺便说一下,你知道time()函数的作用是返回从1970/开始的秒数01/01到现在。只是在数。可能开始时间不正确。检查一下是否正确。C还提供了另一个更方便的函数,()
原型为void(),作用是初始化rand()的种子初始值,该值是不确定的。 相当于srand(()(time(NULL)),但是需要注意的是,()函数必须通过time来实现,所以在调用它的时候,头文件中必须包含time.h。