这个文件在哪里,谢谢,我想看看nextDouble和nextGaussian是怎么写的

解决方案 »

  1.   

    这个文件再哪里啊,我对java不是很懂,我是c++的
      

  2.   

    $JAVA_HONE$/src.zip就是jdk的源码。如果没有的话,可以到java.sun.com下载jdk源码。
      

  3.   

    public double nextDouble() {
            long l = ((long)(next(26)) << 27) + next(27);
            return l / (double)(1L << 53);
        }synchronized public double nextGaussian() {
            // See Knuth, ACP, Section 3.4.1 Algorithm C.
            if (haveNextNextGaussian) {
             haveNextNextGaussian = false;
             return nextNextGaussian;
         } else {
                double v1, v2, s;
             do { 
                    v1 = 2 * nextDouble() - 1; // between -1 and 1
                 v2 = 2 * nextDouble() - 1; // between -1 and 1 
                    s = v1 * v1 + v2 * v2;
             } while (s >= 1 || s == 0);
             double multiplier = Math.sqrt(-2 * Math.log(s)/s);
             nextNextGaussian = v2 * multiplier;
             haveNextNextGaussian = true;
             return v1 * multiplier;
            }
        }
    protected int next(int bits) {
            long oldseed, nextseed;
            AtomicLong seed = this.seed;
            do {
        oldseed = seed.get();
        nextseed = (oldseed * multiplier + addend) & mask;
            } while (!seed.compareAndSet(oldseed, nextseed));
            return (int)(nextseed >>> (48 - bits));
        }
      

  4.   

    下载地址:就在java.sun.com网站上,下载jdk的地方,有JDK 5.0 Source Code一节。http://wwws.sun.com/software/communitysource/j2se/java2/download.html

    http://java.sun.com/j2se/jrl_download.html
      

  5.   

    在原文件中的src/java/util/Random.java 里定义。