您当前的位置:首页 > 生活热点

如何产生随机数(生成三十个随机数)

时间:2022-03-19 01:42:41

在C语言中,可以用rand()函数生成随机数,但这不是真随机数,而是伪随机数。它是以一个数为基础,通过一定的递推公式计算出来的系数。当这个数列很大时,符合正常公布,相当于生成随机数,但这不是真正的随机数。当电脑正常开机时,这个种子的值是固定的。

为了改变这个种子的值,C提供了srand()函数,它的原型是void srand( int a)。

可能大家都知道C语言中的random函数,但是random函数不是ANSI C标准,所以gcc,vc等编译器都无法编译。

Rand()返回一个从0到RAND_MAX的随机数。返回一个介于0和RAND_MAX之间的随机数。RAND_MAX在stdlib.h中定义(其值至少为32767)。我运算的结果是一个不定数。根据您定义的变量类型,如果int是整形的,则为32767。

在调用这个函数生成随机数之前,随机数种子必须由srand()设置。如果没有随机数种子,rand()在调用时会自动将随机数种子设置为1。通常,for语句用于设置种子的数量。有关详细信息,请参见以下示例。

1.如何生成不可预测的随机序列?

使用srand((unsigned int)(time(NULL))是一种方法,因为每次运行程序的时间都不一样。

C语言提供的随机数生成器的用法:目前的C编译器提供了一个基于ANSI标准的伪随机数生成器函数来生成随机数。它们是rand()和srand()函数。这两个功能的工作过程如下:

1)首先为srand()提供一个种子,它是一个无符号的int类型,取值范围是0到65535;

2)然后调用rand(),它将根据提供给srand()的种子值返回一个随机数(0到32767之间)

3)根据需要多次调用rand(),从而不断获得新的随机数;

4)在任何时候,可以向srand()提供新的种子,以进一步“随机化”rand()的输出结果。

以下是0到32767之间的随机数程序:

#包括

#包括

#include //使用当前时钟作为种子。

无效总管(无效)

{ int I;

srand((无符号)时间(空));//初始化随机数

for(I = 0;我

随机数 种子 函数 调用 生成

最新文章