网站首页 > 文章中心 > 其它

c语言中随机数函数例子

作者:小编 更新时间:2023-08-17 22:52:19 浏览量:297人看过

C语言中取随机数的函数

① 基本函数

在C语言中取随机数所需要的函数是:

int rand(void); void srand (unsigned int n);

c语言中随机数函数例子-图1

rand()函数和srand()函数被声明在头文件stdlib.h中,所以要使用这两个函数必须包含该头文件:

#include stdlib.h

srand()函数使用自变量n作为种子,用来初始化随机数产生器.只要把相同的种子传入srand(),然后调用rand()时,就会产生相同的随机数序列.所以呢,我们可以把时间作为srand()函数的种子,就可以避免重复的发生.如果,调用rand()之前没有先调用srand(),就和事先调用srand(1)所产生的结果一样.

举个例子,假设我们要取得0~10之间的随机整数(不含10本身):

/* 例1:不指定种子的值 */

for (int i=0; i10; i++) { printf("%d ", rand()); }

srand(1); for (int i=0; i10; i++) { printf("%d ", rand()); }

该程序取得的随机值也是在[0,10)之间,与srand(1)所取得的值不同,但是每次运行程序的结果都相同.

该程序每次运行结果都不一样,因为每次启动程序的时间都不同.另外需要注意的是,使用time()函数前必须包含头文件time.h.

求一定范围内的随机数.

如要取[0,10)之间的随机整数,需将rand()的返回值与10求模.

randnumber = rand() % 10;

那么,如果取的值不是从0开始呢?你只需要记住一个通用的公式.

要取[a,b)之间的随机整数(包括a,但不包括b),使用:

(rand() % (b - a)) + a

伪随机浮点数.

要取得0~1之间的浮点数,可以用:

rand() / (double)(RAND_MAX)

如果想取更大范围的随机浮点数,比如0~100,可以采用如下方法:

rand() /((double)(RAND_MAX)/100) 其他情况,以此类推,这里不作详细说明.

随机函数rand怎么用c语言

第一段:首先包含必要的头文件

#includestdio.h

这个包含用于输入输出的函数.

#includestdlib.h

这个包含初始化随机数种子、产生随机数的函数.

#includetime.h

这个包含与时间有关的函数,初始化随机数种子时可以用到.

第二段:使用如下公式产生在区间[min,max]之间的随机数

int r=rand()%(max-min+1)+min;

第三段:一个例子,产生10个[1,100]的随机整数

#include stdio.h

#include time.h

int main()

{

const int min=1,max=100;

int i,r;

//用当前时间初始化随机数种子

srand(time(NULL));

printf("随机产生的10个1-100的整数是:");

for(i=0;i10;i++)

r=rand()%(max-min+1)+min;

printf("%d,",r);

}

return 0;

第四段:运行结果的截图

截图1

c语言,产生随机数

产生0~10000000范围内的随机数:int num = rand()*rand()000000;

注:需要包含头文件stdlib.h

C语言中产生随机数的函数是什么?

c语言中产生随机数的相关函数主要包括srand和rand函数,两者配合生成随机数据,测试代码如下,

void main()

int i=0,j=0;

p[i][j]=rand()0+1;//产生1-100的随机数存入数组p中

printf("二维数组p为:\n");

printf("%d\t",p[i][j]);

printf("\n");

一般srand和rand配合使用产生伪随机数序列.rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数.如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的.srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的"随机".通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列.

用C语言编写一个可以产生1~99随机数的函数

int?main()

int?a,i;

srand((unsigned)time(NULL));//初始化随机数

printf("%d\t",a);

return?0;

c 语言中随机函数的应用示例

其实,除了random函数,还有一个rand函数,这个函数也是一个随机函数,他可以产生从0到rand_max的随机数.

大家可以把以上的代码编译运行一下,发现他的确产生随机数了,但是你会发现,每次运行程序产生的随机数都是一样的,如过

你在程序里加上for循环,每次产生的数不一样,但是,如果再运行这个程序,它产生的数故巧洗纬绦虿?慕峁?

那么如何写一个程序,让它每次运行时产生的随机数都不一样呢? 请看下面的例子:

int main(void)

int i;

time_t t;

srand((unsigned) time(t));

for(i=0; i10; i++)

printf("%d\\n", rand() % 100);

这时运行程序,会发现每次产生的随机数都不一样.

那么为什么第一个程序一样而第二个程序一样呢?

第二个程序用到了一个新的函数srand

这个函数是给随机数产生一个随机种子(seed),函数原型是srand( (unsigned)time( NULL ) );

time的值每时每刻都不同.所以种子不同,所以,产生的随机数也不同.

所以说,要想产生不同的随机数,在使用rand之前需要先调用srand

srand和rand函数都包含在stdlib.h的头文件里.

由于rand产生的随机数是从0到rand_max的,而rand_max是一个很大的数,那么如何产生从X~Y的数呢?

从X到Y,有Y-X+1个数,所以要产生从X到Y的数,只需要这样写:

k = rand() % (Y - X + 1) +X;

这样,就可以产生你想要的任何范围内的随机数了.

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章