什么是随机数?
我们知道在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( int a)。
设置种子产生随机数
由于计算机没有办法产生真正的随机数的,是用算法模拟,所以你只调用rand,每次算出来的东西是一样的。设置一个种子后,根据种子的不同,就可以产生不同的数了。
Srand是种下随机种子数,你每回种下的种子不一样,用Rand得到的随机数就不一样。为了每回种下一个不一样的种子,所以就选用Time(0),Time(0)是得到当前时时间值(因为每时每刻时间是不一样的了)。简单来说:
srand()是给随机数产生一个种子
time(NULL)就是把当前的时间值作为种子
srand(time(0)):我们可以称它为启动种子,也叫随机种子数,
案列分析
一般用for语句来设置种子的个数,我们还可以用算数运算符来控制rand()随机数的大小,比如想的到0-1之间的随机数,1-100之间的随机数等等
实现0-1之间的随机数:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
int i;
srand((unsigned)time(NULL));
for (i = 0; i < 10; i++)
printf("%4.2f\n", rand() / 32767.0);
}
实现0-100之间的随机数,这个在我们猜数字的时候用过:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
int i;
srand((unsigned)time(NULL));
for (i = 0; i < 10; i++)
printf("%d\n", rand() % 100 + 1);
}
实现0-32767之间的随机数:文章来源:https://www.toymoban.com/news/detail-740529.html
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main()
{
int i;
srand(time(0));
/* 输出 10 个随机数. */
for (i = 0; i < 10; i++)
printf("%6d\n", rand());
}
文章来源地址https://www.toymoban.com/news/detail-740529.html
到了这里,关于srand(time(0))函数的用法介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!