c语言中,有多少中生成c语言 随机数生成函数的方法,哪种最好?

C语言产生随机数序列的方法
Crand()rand()0~RAND_MAXintRAND_MAX32767
rand()#include stdlib.h
void main( void )
for( i=0; i&10; i++ )
printf(" %d", rand());
&printf("\n");
Crandom()random()ANSI
Crandomgcc,vc
Csrand()rand()
1srand()unsigned
int0~65535
2rand()srand()(032767)
4srand()rand()
void main( void )
srand( (unsigned)time(NULL));&&&&&&&&&
for( i=0; i&10; i++ )
printf(" %d", rand());
printf("\n");
&& &rand()0~rand_max0~32767X~Y
k=rand()%(Y-X+1)+X;
void main( void )
srand( (unsigned)time(NULL));
for( i=0;&
printf(" %d", rand()�+10);
&printf("\n");
1100aa[1]~a[99]1~99
0for1~9900i0while
void main()
int a[100]={0};& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
srand((unsigned)time( NULL ));
while(a[m=rand()0+1]);& &&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
printf("M", a[i] );
&&&&&&&&&&&&&
if(i==0 || i&=99) &printf("\n");
2100100~299a
rand()tempamam+1m
void main()
int i, m=0,temp,
int a[100]={0};&
srand((unsigned)time( NULL ));
while(m&100)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
temp=rand() 0+100;&&&&&&&&&&&&&&
&&&&&&&&&&&&&
flag=1;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
for(i=0; i&=m; i++)&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
if(a[i]==temp)&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
&&&&&&&&&&&&&
if(flag)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
a[m] =&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
m++;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
for(i=0; i&=99; i++)
printf("M", a[i] );
&&&&&&&&&&&&&
if((i+1)==0 || i&=99) printf("\n");
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
C语言中产生随机数的函数我想要一个1~100的随机数,请告诉我用怎样的语句实现.
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
楼上这样得出的随机值不准确,不信你运行几次试试,都是同一个数.正确应该这样.首先加头文件#include #include然后在主函数里面写srand(time(0));i=rand()%100+1;printf("%d",i);
请问产生随机数的函数是哪个?我记得好像看见过两个,我一个都不会用。搜什么名字能看到完整的用法?
rand()就是产生随机数的函数,只是要先用srand(time(0))得到一个随机数种子。这样,每次运行得到的随机数都不同了。
为您推荐:
扫描下载二维码2005年2月 C/C++大版内专家分月排行榜第二
2012年1月 扩充话题大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。C语言中获得随机数的方法(读书笔记:-&)
我的图书馆
C语言中获得随机数的方法(读书笔记:-&)
&& &现在C语言编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这两个函数的工作过程如下。&& &C语言中rand()函数可以用来生成随机数,但这不是真正意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以摸个递推公式推算出来的一系数。在程序运行前这个种子就已经定了,除非你破坏了系统。为了改变这个种子的值C语言提供了srand()函数,其原型为void srand(int a).&& &rand()会返回一个随机数,范围在0—RAND_MAX之间。RAND_MAX定义在stdlib.h中(其值至少为32767)。在调用rand()函数前,必须先利用srand()设定好随机数种子,如果为摄随机数种子,rand()在调用时会自动设种子为1.一、如何产生不可预见的随机数序列&& &利用srand((unsigned int) time(NULL))是一种方法,因为每一次运行程序的时间是不同的。1&首先给srand()提供一个种子,他是一个unsigned int类型其取值范围是0—65535;2&然后调用rand(),他会根据提供给srand()的种子值返回一个随机数(在0—32767之间)。3&根据需要多次调用rang(),从而不间断的得到随机数。4&无论什么时候都可以给srand()提供一个新种子,从而进一步随机化rand()的输出结果。下面是0—32767之间的随机数程序:#include&stdlib.h&#include&stdio.h&#include&time.h& //使用当前时间做种子void main(void){srand((unisgned int)time(NULL)); //初始化随机数for(i=0;i&10;i++)&& &printf("%d\n",rand()); //打印10个随机数}&& &根据上面的程序可以很容易的得到0—1之间的随机数#include&stdlib.h&#include&stdio.h&#include&time.h& //使用当前时间做种子void main(void){
srand((unsigned int)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& //使用当前时间做种子void main(void){
srand((unsigned int)time(NULL)); for(i=0;i&10;i++)
& printf("%5.2f\n",rand()%100+1);}二、如何产生设定范围内的随机数&& &由于rand()产生的随机数从0到rand_max,而rand_max是一个很大的数,那么如何产生从x—y的数呢?&& &从x—y有y-x+1个数,所以要产生从x到y的数可以这样写: k=rand()%(y-x+1)+x;&& &这样就可以产生你想要的任何范围随机数了。三、产生不重复的随机数未完待续 &
TA的最新馆藏[转]&
喜欢该文的人也喜欢

我要回帖

更多关于 c语言如何生成随机数 的文章

 

随机推荐