学学高数可能会有用,而且有现成的api不用,用java写这么复杂的算法干什么,一般写算法都是用c,因为有指针,写起来比较方便

解决方案 »

  1.   

    这好像是生成伪随机数的线性同余公式,原始的公式是这样的:
    参考 wiki 上的词条“线性同余发生器”http://en.wikipedia.org/wiki/Linear_congruential_generator你不会想让人来证明这个公式吧?
      

  2.   

    有可能哦 呵呵   
    主要是不了解Xn aXn+c 这俩个是什么意思
     同余我懂
      

  3.   


    唉,果子还是那么的强呀~~  
    CSDN最佩服的人,多日不见~~
      

  4.   

    多搜搜相关的资料;用 “线性同余法”产生随机数,公式如下: x=(x*29+7) mod 1000
    为什么是29和37?为什么用MOD ?mod 1000的意思就是如果超过1000就把该数减去1000.还可以打个比方,x mod 12 代表的是钟表刻度,它的值永远在0..11之间。这个概念在数学里叫”同余”。一般:在计算机上可以用物理方法来产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生,这样产生的序列与真正的随机数序列不同,所以称为伪随机数或伪随机序列,只要方法和参数选择合适,所产生的伪随机数就能满足均匀性和独立性,与真正的随机数具有相近的性质。产生随机数的方法是先用一定的方法产生[0,1]均匀分布的随机数,然后通过一个适当的变换就可以得到符合某一概率模型的随机数。常用的产生[0,1]均匀分布的随机数的方法有乘同余法和混合同余法。