随機數表

随机数表

由随机生成的从0到9十个数字所组成的数表
随机数表:也称乱数表,是由随机生成的从0到9十个数字所组成的数表,每个数字在表中出现的次数是大致相同的,它们出现在表上的顺序是随机的。随机数表是指为每个客户指定各不相同的数字列表,申请时将该随机数表分配给客户,而不是按照一定的规律给出,这就安全很多。再比如,要考察某公司的牛奶产品质量,想从800袋牛奶中抽取60袋,就可以在随机数表中选中一数,并用向上、下、左、右不同的读法组成60个数,并按牛奶的标号进行检测,虽然麻烦,但很常用。详细的举一例:某企业要调查消费者对某产品的需求量,要从95户居民家庭中抽选10户居民码表法抽选样本。
    中文名:随机数表 外文名:random number table 适用领域: 所属学科: 也称:乱数表 出现:在表上的顺序是随机的 采用:随机号码表法抽取样本 意义:非主观

意义

随机数表是统计工作者用计算机生成的随机数组成,并保证表中每个位置上出现哪一个数字是等概率的,利用随机数表抽取样本保证了各个个体被抽取的概率相等。

真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等。这样的随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高。

而通常我们使用的随机数表是使用伪随机数,这些数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。计算机或计算器产生的随机数有很长的周期性。它们不真正地随机,因为它们实际上是可以计算出来的,但是它们具有类似于随机数的统计特征。

采用随机号码表法抽取样本,完全排除主观挑选样本的可能性,使抽样调查有较强的科学性。

用途

比如,对银行来说,银行的ID和密码非常脆弱。如果有随机数表,就可以防备此类事件。随机数表是指为每个客户指定各不相同的数字列表,申请时将该随机数表分配给客户,而不是按照一定的规律给出,这就安全很多。

详细的举一例:某企业要调查消费者对某产品的需求量,要从95户居民家庭中抽选10户居民码表法抽选样本。具体步骤如下:第一步:将95户居民家庭编号,每一户家庭一个编号,即01~95。(每户居民编号为2数)

第二步:在上面的表中,随机确定抽样的起点和抽样的顺序。假定从第一行,第9列开始抽,抽样顺序从左往右抽。(横的数列称“行”,纵的数列称为“列”)

第三步:依次抽出号码分别是:86、36、96、47、36、61、46、98、63、71,共10个号码。由于96、98两个号码不在总体编号范围内,应排除在外。再补充两个号码:62、74。

由此产生10个样本单位号码为:86、36、47、36、61、46、63、71、62、74。

编号为这些号码的居民家庭就是抽样调查的对象。

实际生活中,这些随机数表起着很大的作用,所以很多人会专门去寻找随机数表产生器。

C语言编程产生

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

初始化随机产生器既rand()函数的初始值,即使把种子的值改成a;从这你可以看到通过sand()函数,我们是可以产生可以预见的随机序列,那我们如何才能产生不可预见的随机序列呢?我们可能常常需要这样的随机序列。利用srand((unsign)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的。在C语言里所提供的随机数发生器的用法:现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这二个函数的工作过程如下:1)首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535

2)然后调用rand(),它会根据提供给srand()的种

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("%dn",rand());

}

根据上面的程序可以很容易得到0~1之间的随机数:

#include

#include

#include

main()

{int i;

srand((unsigned)time(NULL));

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

printf("%5.2fn",rand()/32767.0);

}

而产生1~100之间的随机数可以这样写:

#include

#include

#include

main()

{int i;

srand((unsigned)time(NULL));

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

printf("%dn",rand()%100+1);

}

__________________________________________________

include

#include

#include

void main()

{

int i;

srand((unsigned)time(NULL));

i=rand()%100;

}

这样产生的随机数就是0-99之间的,

这二个函数的工作过程如下:

1)首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535;

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

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

4)无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。

#include

#include

main

{

int i;

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

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

}

首先,加一个"#include

然后设一个变量,如j,j=rand(),就可以给j赋一个1~32767的随机数,如果要获得一个随机函数的十位(其它类似),只需令j=j%10就行.添加头文件#include然后在文件中添加srand((unsigned)time(NULL));

srand()是用来初始化随机种子数的,因为rand的内部实现是用线性同余法做的,它不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的.上面是有个随机种子的说明及方法,为了避免重复.然后再用随机函数,rand() 就行了.头文件是stdlib.h

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

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

rand()产生0到32768之间的一个随机数

相关词条

相关搜索

其它词条