import java.util.Random;
class Speed
{
    double distance;
    int time_t;
}public class Exercise6
{
    public static void main(String []args)
    {
        double speed;
        Speed aa=new Speed();
        Random rand=new Random();        A     //Random rand=new Random(47);
        aa.distance=rand.nextDouble();
        System.out.println(aa.distance);
        aa.time_t=rand.nextInt();            
        System.out.println(aa.time_t);
        speed=aa.distance/(aa.time_t);
        System.out.println(speed);
    }
}
此程序的运行结果有许多种,但我把A处代码都改成和注释一样,每次运行的结果就一样了,我看了jdk文档关于Random类的解释 但不是太懂;
所以请求帮助,谁能讲的详细点啊 先谢谢啦

解决方案 »

  1.   

    使用单个 long 种子创建一个新的随机数生成器,这句话很高深啊~
      

  2.   

    这个是指随机因子,在相同的随机因子下,生成的随机数序列是固定的(因为生成算法固定)new Random()实际上是传递当前时间作为随机因子了,所以每次不同
      

  3.   

    Random实际上是个伪随机数
    是根据当前随机种子计算下一个随机数的,同时把下一个随机数设置为种子用于计算下下个
    种子相同的时候,算出来的随机数也是一样的
    Random rand=new Random(47);
    这样就等于把起始种子设置为了47,所以后面的随机数序列始终一样