random ran = new random(47);
int i = ran.nextInt(100);
int j = ran.nextInt(100);System.out.print("i=" + i + "\n");
System.out.print("j=" + j);ran.nextInt是取随机数,为什么我new了random后给了47这个值,变量i在后面就固定输出58了呢而不是随机数了,j也是一样的!~新手求高手解答一下

解决方案 »

  1.   

    ran.nextInt(100);
    这个是说 从100里面随即 取数。当然 可以取到啦。。你肯定 取不到100
      

  2.   

    Random实现的随机算法是伪随机,意思是有规则的随机,所以每次生成都一样的
    而你想要的那个随机算法不一样的是Math.random();
      

  3.   

    推荐你两种方法:1,Math.random() 使用Math生成随机数  数值范围为double类型的0-1之间 比如产生0-9的随机数 int num=(int)(Math.random()*10); 2,使用Random生成随机数 Random ran=new Random(); 参数表示产生随机数的范围:0至参数减1 int lucyNum=ran.nextInt(10); 你试一下。。
      

  4.   

    random ran = new random(47);
    这里的47是随机数种子,只要种子一样生成的随机数的顺序就是一样的。
    你把47换了就不一样了,可以用系统时间当随机数种子,这样比较接近真实的随机数。
      

  5.   

    因为你的随机种子是47 是一个固定值 所以不会变  你把47删除掉就可以了
    或者以系统时间为随机种子 那样就会变化了 比喻把47改成new Date().getTime()