利用srand((unsigned int)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的。
在C语言里所提供的随机数发生器的用法:现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这二个函数的工作过程如下:
1) 首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535;
2) 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)
3) 根据需要多次调用rand(),从而不间断地得到新的随机数;
4) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。
下面是0~32767之间的随机数程序:
#include <stdlib.h>
#include <stdio.h>
#include <time.h> // 使用当前时钟做种子
void main(void)
{int i;
srand((unsigned)time( NULL ) ); // 初始化随机数
for(i = 0; i < 10;i++) // 打印出 10 个随机数
printf("%d\n", rand() );
}
根据上面的程序可以很容易得到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("%5.2f\n", rand()/32767.0);
}
而产生1~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);
}
扩展资料:
C语言高效编程技巧:
一:以空间换时间
计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题
二:数学方法解决问题
数学是计算机之母,没有数学的依据和基础,就没有计算机发展,所以在编写程序的时候,采用一些数学方法会对程序的执行效率有数量级的提高。
三:使用位操作
实现高效的C语言编写的第三招----使用位操作,减少除法和取模的运算。
在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效提高程序运行的效率。
参考资料来源:百度百科-C语言
如何用c语言产生一定范围内的随机数?
1) 首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535;2) 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)3) 根据需要多次调用rand(),从而不间断地得到新的随机数;4) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“...
C语言怎样产生一定范围的随机数?
在C语言中,可以使用stdlib库中的rand函数来产生随机数,通过结合时间或者特定种子值作为rand函数的参数,可以产生一定范围的随机数。解释如下:使用rand函数产生随机数 C语言中的rand函数可以生成一个伪随机数。这个数通常是一个较大的整数,每次调用rand都会生成一个新的随机数。为了在一个特定范围内生成...
C语言怎样产生一定范围的随机数?
在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,可以称它为种子。为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数。C语言产生一定范围的随机数的源代码如下:include<stdio.h> include...
如何在C语言中产生一定范围的随机数
int randnumber=rand();\/\/生成随机数 int number_rang=randnumber%16+85;\/\/将随机数限定在[85,100]} \/\/生成随机数的原理是:rand()函数总是从0~RAND_MAX【通常的最大值是32767,可以用C++的cout<<RAND_MAX;语句(C的语句大概是printf(...)没试过)得知其值,RAND_MAX是<stdlib.h>中的...
如何在C语言中生成一定范围内的随机数?
用rand函数吧,好久不用C语言,不太记得,貌似是int a=rand()% X(X即范围)这是伪随机数 include srand(time(NULL));使用前用这条语句初始化 使用int a=rand() \/ RAND_MAX * n;就得到真正的随机数
C语言怎样产生一定范围的随机数?
编译环境为:vs2013产生1到3的整型随机数的代码如下:#include<stdio.h>#include#include<stdlib.h>#define max 3 \/\/这个函数的意义为:随机生成最大的数为3#define min 1 \/\/这个函数的意义为:随机生成最小的数为1int main(){int num;srand(time(0));num = rand() % (max - min...
如何使用C语言产生随机数?
电脑、C语言编译器。1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:for (int i = 0; i < 10; i++)printf("%d ", rand() % 100 +1);3、编译器运行test.cpp文件,此时成功通过rand产生了10个1-100内的整数。
C语言如何产生一定范围内一定数量的不同随机数
源代码如下:include <stdio.h> include <stdlib.h> include <stdbool.h> include <unistd.h> define a 16807\/\/or 48271 define m 2147483647 define q (m\/a)define r (m%a)static long int seed = 1;\/\/return rand long in [1,m]long int pm_rand(void){ long hi = seed \/ q;lo...
如何在C语言程序中产生一个有范围的随机数?
C语言产生有范围随机数需要random函数。random即随机数发生器,使用之前需要使用Randomize语句进行随机数种子的初始化。RANDOM产生的是伪随机数或者说是用一种复杂的方法计算得到的序列值,因此每次运算时需要一个不同的种子值。种子值不同,得到的序列值也不同。因此也就是真正的随机数了。这也正是...
vc环境下 c语言怎么生成随机数
在VC环境下,使用C语言生成随机数时,首先需要设定种子值。本文提供一个示例程序,用于生成16个不重复的0至15之间的随机数。程序如下:1. 设置种子值为1000。2. 初始化循环变量i,并创建一个名为m的整型数组,用于存储生成的随机数。3. 使用`printf`函数提示用户输入种子值,并使用`srand`函数根据...