随机数

生成随机数需要调用两个函数:srand(srandom)和rand(random)。rand和random的区别就是返回类型不同,int和long int(虽然在普通的32位机上效果是一样的)。srand是种子发生器,保证每次得到的数据都是不同的。给个例子:

 1 #include <stdlib.h>
 2 #include <stdio.h>
 3 #include <time.h>
 4 
 5 int main()
 6 {
 7     int rnumber[100] = {0};
 8     srand(1);   //这里写不写都行,因为种子为一个确定值,所产生的随机数一直都是确定的。就好比只使用了rand()
 9     int i;
10     for(i=0;i<10;i++)
11     {
12         rnumber[i] = rand() % 100;  //得到100以内的数
13         printf("随机数:%d
",rnumber[i]);
14     }
15 }

执行了好多次的结果都为:

随机数:83
随机数:86
随机数:77
随机数:15
随机数:93
随机数:35
随机数:86
随机数:92
随机数:49
随机数:21

我们把srand(1)修改为:

srand((int) time(0));

结果发现每次运行都会产生不同的10个随机数。这就是上面所说的srand函数为了防止随机数每次重复,常常使用系统时间来初始化,即使用 time 函数来获得系统时间来作为随机数的种子。

原文地址:https://www.cnblogs.com/xiaodangxiansheng/p/10899530.html