c语言生产随机数的方法0-9,用C语言产生随机数(9页)-原创力文档

用 c 语言产生随机数

在 C语言中 ,rand() 函数可以用来产生随机数,但是这不是真

真意义上的随机数, 是一个伪随机数, 是根据一个数, 我们可以称它

为种子,为基准以某个递推公式推算出来的一系数, 当这系列数很大

的时候,就符合正态公布, 从而相当于产生了随机数, 但这不是真正

的随机数, 当计算机正常开机后, 这个种子的值是定了的, 除非你破

坏了系统,为了改变这个种子的值, C提供了 srand() 函数,它的原

形是 void srand( int a) 。

可能大家都知道 C 语言中的随机函数 random,可是 random 函数并不

是 ANSI C 标准,所以说, random 函数不能在 gcc,vc 等编译器下编

译通过。

rand() 会返回一随机数值,范围在 0 至 RAND_MAX间。返回 0 至

RAND_MAX之间的随机数值, RAND_MAX定义在 stdlib.h ,( 其值至少

为 32767) ,运算的结果是一个不定的数,要看你定义的变量类型,

int 整形的话就是 32767。 在调用此函数产生随机数前, 必须先利用

srand() 设好随机数种子,如果未设随机数种子, rand() 在调用时会

自动设随机数种子为 1。一般用 for 语句来设置种子的个数。具体见

下面的例子。

一 如何产生不可预见的随机序列呢

利用 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

#include

#include // 使用当前时钟做种子

void main( void )

{int i;

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

for( i = 0; i < 10;i++ ) // 打

印出 10 个随机数

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

}

根据上面

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值