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

c语言中random函数

作者:小编 更新时间:2023-10-22 18:16:04 浏览量:30人看过

c语言random()的问题

rand()是不能产生真正的随机数的.即使不能产生真正的随机数,也要大概接近.而rand()好象每次的随机都一样.之所以rand()每次的随机数都一样是因为rand()函数使用不正确.

各种编程语言返回的随机数(确切地说是伪随机数)实际上都是根据递推公式计算的一组数值,当序列足够长,这组数值近似满足均匀分布.

c语言中random函数-图1

扩展资料

调用随机数函数 rand()() 的时候, 实际得到的这个随机数并不是绝对随机的,它是以一个初始值,通过一个算法,计算出来的"伪随机数"数列,每次调用rand()()时,从这个数列依次取出一个值,做为随机数.

这个初始的值就是"随机数种子", 也就是说,如果随机数种子相同,计算出的随机数数列是相同的.而srand()om( x) 这个函数就是初始化随机数产生器,设定随机数种子用的.给定的x的就是随机数种子.可以验证,当你多次调用srandm(x)时,如果x取值相同,则得到的随机数数列是一样的.

所以,若我们每次运行程序时,要得到不同的随机数序列,就应该用不同的种子来初始化这个随机数产生器.比如说,用时间初始化它,或者用getpid(),用进程的pid号初始化,由于每次运行程序时,它的pid号一般是不同的,所以能够产生不同的随机数序列.

C语言random函数

s_addr是一个long型的变量,当然可以用random的返回值进行赋值.结构体如下:

typedef struct in_addr {

union {

struct {

} S_un_b;

} S_un_w;

u_long S_addr;////////////////////////////////////////这里

} S_un;

} in_addr;

s_un_b.s_b1=0

s_un_w.s_w1=0;

详细介绍一下C语言里面的随机数产生函数random怎么用

rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种了,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了 srand()函数,它的原形是void srand( int a).

初始化随机产生器既rand()函数的初始值,即使把种子的值改成a; 从这你可以看到通过sand()函数,我们是可以产生可以预见的随机序列,那我们如何才能产生不可预见的随机序列呢?我们可能常常需要这样的随机序列,是吧.利用srand((unsign)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的.

下面讲一讲在C语言里所提供的随机数发生器的用法.现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数.它们就是rand()和srand()函数.这二个函数的工作过程如下:

以下是一个产生随机数的例子:

需要首先使用随机数"种子"初始化,srand函数:

#i?nclude?stdlib.h

#i?nclude?stdio.h

#i?nclude?time.h//使用当前时钟做种子

void?main(?void?)

{

int?i;

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

/*?打印10个随机数.?*/

for(?i?=?0;?i?10;i++?)

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

}

#include?stdlib.h

#include?time.h

main

srand(time(0));?//初始化随机种子

i?=?rand();?//产生随机数

首先,加一个"#includestdlib.h

添加头文件 #includetime.h

然后在文件中添加 srand((unsigned)time(NULL));

srand()是用来初始化随机种子数的,因为rand的内部实现是用线性同余法做的,它不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的.

上面是有个随机种子的说明及方法,为了避免重复.然后再 用 随机函数,rand() 就行了.

头文件是 stdlib.h

random() 产生随机数为 0或1

random(n) 产生随机数为 0到n之间的一个随机数

函数名: randomize

功 ?能: 初始化随机数发生器

用 ?法: void randomize(void);

程序例:

#include?stdio.h

int?main(void)

randomize();

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

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

return?0;

c语言里 random函数怎么实现的

rand函数是根据一个数(我们可以称它为种子)为基准,以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,

但这产生的并不是真意正义上的随机数,是一个伪随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值.

种子相同,产生的随机序列相同.这样做的好处是,方便我们产生一组固定的随机序列,用来调试程序.

C提供了srand()函数,用来设置种子,它的原形是void

srand(

int

a).

在调用rand函数产生随机数前,应该先利用srand()设好随机数种子,如果未设随机数种子,默认种子为1.

c语言random函数怎么用

C语言里面没有random函数

只有rand

功能是产生一个整型随机数.

比如

n=rand();

这样就可以了

为了真随机,一般在开始设置一个种子 一次即可. 常用方式为

srand(time(NULL));

C语言中 random() 函数怎么用?

random,C语言里意为随机数发生器.用法:

int random(int num);

例子:

#include stdlib.h

int main(void);

return 0;

以上就是土嘎嘎小编为大家整理的c语言中random函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

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

编辑推荐

热门文章