首页 > 编程知识 正文

c语言取随机数,C语言连续生成多个随机数

时间:2023-05-03 05:57:11 阅读:119830 作者:406

在stdlib.h中,srand和rand这两个函数与伪随机数的生成有关。 在c语言中,随机数表包含许多列,srand函数根据其参数(unsigned类型)获取种子),并根据种子设置从哪个列获取随机数。 rand没有参数。 返回对应的随机数。 如果种子相同,则从同一列的随机数中选择,rand在每次选择时自动选择下一个随机数。 以上内容非常抽象,但可以通过以下步骤明确说明其原理。

#包含

#包含

输入主(语音) )。

{

int seed,I;

for (; )

{

printf (pleaseinputanumbertosettheseed : );

扫描(' % d ',seed );

if(seed==0) )

布雷克;

for(I=0; i 5; I )

printf(%d(t ),rand );

printf((n ) n ) );

}

返回0;

}

以下是执行结果:

可以看到,如果srand设置的种子相同,则是从同一列的随机数中选择的。 那么,如何生成真正不同的随机数呢?

问题的关键是种子的选择。 我们的目的是在不同的时间生成不同的随机数。 因此,如果有只与时间有关的数量,可以通过将其传递给srand来实现目的。 这样的函数位于time.h头文件中。 函数名称为time。 调用time时,将返回与时间相关的整数。 具体使用方法如下。

/*

* rand2.c

* to create a list of random numbers。

*/

#包含

#包含

#包含

#define MAXNUM 100

输入主(语音) )。

{

int i;

srand () unsigned (time ) ) null );

for(I=0; i 10; I )

printf('%dt ',rand(%maxnum ) );

printf((n );

返回0;

}

执行效果如下。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。