热情软件屋

 

是否有一种算法能得知它的下一个随机数是多少


编号:QA004497
建立日期: 2001年12月11日 最后修改日期:2001年12月11日
所属类别:

king6:
    不知算不算是问题。
    请教VB 6 中的 x=Rnd 所得到的0-1 之间的所谓随机数,是否有一种算法能得知它的下一个随机数是多少?在不使用 Randomize 的情况下每次都是按顺序。
    .705547
    .533424
    .579518
    .289562
    我想这些数之间应该会有因果关系或叫算法吧?如您知道该是怎样算法的话请您告诉我好吗?

回答:

    一般的伪随机数都是按下面的公式计算的:
    r(i) = (A * r(i-1) + B ) Mod m, i = 1, 2, ...
    p(i) = r / m
    这里A、B、m。例如,你可以选A = 2053、B=13849、m=2^16。虽然VB没有说明Rnd函数使用的是什么算法,但我估计也是采用的是上面的公式,只是A、B和m的取值不同罢了。而Randomize实际指定的是公式中的r(0)。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio