问道全敏木怎么样:随机取1--100的整数

来源:百度文库 编辑:高校问答 时间:2024/04/24 21:38:07
随机取1到100之间的整数,完全随机。然后在程序运行多少次过后,能证明1到100之间的所有整数至少都取到过一次?请说明你的理由。
我是说如果要想1到100之间的数至少都出现一次,需要程序运行至少多少次?
有更好的答案吗?

计算机中没有“完全随机”的概念。
计算机中的“随机”都是在“种子”的基础上由一定的算法实现的,所以说只要种子一样,所得到的结果就相同,所以说这种随机数都是伪随机数。简单的可以用schrage算法实现,先取一个0-1之间的随机数,然后再乘个100就行了。
下面这个是16807随机数产生器的算法
long schrage(long a, long b, long m, long z)
{long q,r,Z;
q=m/a;
r=m%a;
if (a*(z%q)-r*(z/q)>=0)
Z=a*(z%q)-r*(z/q);
if (a*(z%q)-r*(z/q)<0)
Z=a*(z%q)-r*(z/q)+m;
return Z;
}

a=16807;
b=0;
m=2147483647

完全随机的话就要 100的100次方 次