C语言产生随机数的方法 |
您所在的位置:网站首页 › 随机数字自动生成 › C语言产生随机数的方法 |
原理概述
在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原型是: void srand(int a)rand()会返回一随机数值,范围在0至RAND_MAX 间。返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,(其值至少为32767),要看你定义的变量类型,int整形的话就是32767。 在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。一般用for语句来设置种子的个数。 通用的随机数发生器函数名:rand 功能:随机数发生器 用法: void rand(void)程序例: // Date:2020/4/10 // Author:xiezhg5 #include #include int main(void) { int i; printf("Ten rand number from 0 to 99\n\n"); for(i=0;i int i; srand((unsigned)time(NULL)); for(i=0;i int temp; temp=*pm; *pm=*pn; *pn=temp; } int main(void) { int i,a[513]; //int *pm,*pn srand((unsigned)time(NULL)); //定义这个可以产生不同的随机数 for(i=1;i swap(&a[i],&a[rand()%i+1]); //加1是从1到i的随机,不包含0 } printf("\n"); for(i=1;i0}; int i,m; for(i=1;i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |