本帖最后由 ratzip 于 2011-02-21 08:05:53 编辑

解决方案 »

  1.   

    public double nextDouble()返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。 
    nextDouble 的常规协定是,伪随机地生成并返回一个从 0.0d(包括)到 1.0d(不包括)范围内均匀选择(大致)的 double 值。 Random 类按如下方式实现 nextDouble 方法:  public double nextDouble() {
           return (((long)next(26) << 27) + next(27))
               / (double)(1L << 53);
     }前面的描述中使用了不确定的词“大致”,因为 next 方法只是一个大致上独立选择位的无偏源。如果它是一个随机选择位的最佳源,那么给出的算法应该从规定范围完全一致地选择 double 值。 [在 Java 的早期版本中,结果被错误地计算为:  return (((long)next(27) << 27) + next(27))
          / (double)(1L << 54);这可能看似等效(如果不是更好的话),但实际上由于浮点数舍入中的偏差,它会引入较大的不均匀性:有效数的低位出现 0 的可能性是 1 的三倍!这种不均匀性在实践中可能没什么关系,但我们总是力求完美。] 返回:
    下一个伪随机数,它是此随机数生成器序列中 0.0 和 1.0 之间均匀分布的 double 值
    另请参见:
    Math.random()
      

  2.   

    public double nextDouble()返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。 
    nextDouble 的常规协定是,伪随机地生成并返回一个从 0.0d(包括)到 1.0d(不包括)范围内均匀选择(大致)的 double 值。 Random 类按如下方式实现 nextDouble 方法:  public double nextDouble() {
           return (((long)next(26) << 27) + next(27))
               / (double)(1L << 53);
     }前面的描述中使用了不确定的词“大致”,因为 next 方法只是一个大致上独立选择位的无偏源。如果它是一个随机选择位的最佳源,那么给出的算法应该从规定范围完全一致地选择 double 值。 [在 Java 的早期版本中,结果被错误地计算为:  return (((long)next(27) << 27) + next(27))
          / (double)(1L << 54);这可能看似等效(如果不是更好的话),但实际上由于浮点数舍入中的偏差,它会引入较大的不均匀性:有效数的低位出现 0 的可能性是 1 的三倍!这种不均匀性在实践中可能没什么关系,但我们总是力求完美。] 返回:
    下一个伪随机数,它是此随机数生成器序列中 0.0 和 1.0 之间均匀分布的 double 值
    另请参见:
    Math.random()
      

  3.   

    [code=Jav]
                    msyh.setCurrent(Math.round((msyh.getCurrent() + mh) * 100) / 100.0);
                    pfyh.setCurrent(Math.round((pfyh.getCurrent() + pf) * 100) / 100.0);
                    zgsy.setCurrent(Math.round((zgsy.getCurrent() + zg) * 100) / 100.0);
                    zgzy.setCurrent(Math.round((zgzy.getCurrent() + zz) * 100) / 100.0);[/code]你这几句不又重新随机了么
      

  4.   

    没有重复随机啊,mh,pf,zg,zz都是随机算出来的