论文部分内容阅读
一、问题的提出
通常,计算软件采用类似rand()这样的函数来产生随机数.如Scilab可以用rand()产生0~1之间的均匀随机数.为了产生m~n之间的随机数,我们采用变换rand()*(n-m) m来实现(参见人教版普通高中课程标准实验教科书《数学》必修三第110页).如果要求结果为随机整数,我们一般考虑将该随机数嵌套进取整函数中,以round(rand()*(n-m) m)的方式进行四舍五入.例如,在Scilab软件中,我们可以利用round(rand()*9)随机产生一个0~9之间的整数.同样地,在Visual Basic中,只需要将取整函数改为Int()即可.
若无其他要求,上述算法是簡便可行的.但是,“随机抽取整数”算法往往使用在对产品抽样、抽签等场合中,这些场合往往又有“抽到每一个数字的机会均等”的附带要求.为验证上述算法的公平性,我们编写程序以统计产生的随机整数.
通常,计算软件采用类似rand()这样的函数来产生随机数.如Scilab可以用rand()产生0~1之间的均匀随机数.为了产生m~n之间的随机数,我们采用变换rand()*(n-m) m来实现(参见人教版普通高中课程标准实验教科书《数学》必修三第110页).如果要求结果为随机整数,我们一般考虑将该随机数嵌套进取整函数中,以round(rand()*(n-m) m)的方式进行四舍五入.例如,在Scilab软件中,我们可以利用round(rand()*9)随机产生一个0~9之间的整数.同样地,在Visual Basic中,只需要将取整函数改为Int()即可.
若无其他要求,上述算法是簡便可行的.但是,“随机抽取整数”算法往往使用在对产品抽样、抽签等场合中,这些场合往往又有“抽到每一个数字的机会均等”的附带要求.为验证上述算法的公平性,我们编写程序以统计产生的随机整数.