黑马程序员技术交流社区

标题: 这个随机数怎么出不来呢 [打印本页]

作者: yangzhao    时间: 2016-7-29 10:13
标题: 这个随机数怎么出不来呢
各位大神帮我看看这个问题该怎么解决可好??{:3_52:}

图片.png (65.5 KB, 下载次数: 15)

图片.png

作者: coco2016    时间: 2016-7-29 11:25
重新启动。。。
作者: lbx95272006    时间: 2016-7-29 11:28
你这代码没有错啊
作者: 13411939415    时间: 2016-7-29 17:24
代码没错,鉴定完毕
作者: yangzhao    时间: 2016-7-30 10:01
13411939415 发表于 2016-7-29 17:24
代码没错,鉴定完毕

我也觉得,可能是java安装的问题。。
作者: Bemooy    时间: 2016-7-30 11:42
是你文件的名字和代码中类的名字不一致造成的
作者: a623562486    时间: 2016-7-30 12:52
去查一下API,如果MATH没问题,你试试在类上加一下导包,也许可以。如果还不行,可能就是JAVA安装问题了
作者: gtzzu    时间: 2016-7-30 15:51
代码没有问题,另外我附个我遇到的问题,交流一下,也请各位大神指教

public static void main(String[] args) {
                Random r = new Random(1000);
                System.out.println(r.nextInt());
                System.out.println(r.nextInt());
                System.out.println(r.nextInt());
                System.out.println(r.nextInt());
                System.out.println(r.nextInt(100));
                System.out.println(r.nextInt(100));
                System.out.println(r.nextInt(100));
                System.out.println(r.nextInt(100));
        }

在指定种子1000的情况下,同一行代码,每次运行的结果是一样的。

但是,为什么每个System.out.println(r.nextInt())运行出来的结果都不一样。每个System.out.println(r.nextInt(100))也不一样?



作者: caolufo    时间: 2016-7-30 21:41
本帖最后由 caolufo 于 2016-7-30 21:48 编辑

    new Random(1000)       是根据种子数1000计算生成出一个随机数列表(元素有固定顺序)
1、同一个 Random对象多次调用next()方法,会按照这个顺序随机表依次产生数据。(程序每运行一次next,向后取一个随机数)例一:public class Test {
              public static void main(String[] args) {
                Random r = new Random(1000);
                for (int i = 1; i <11; i++) {
                System.out.print(r.nextInt(100)+" ");
                }  
            }
         }
当i分别修改为11,16,21,26,31时,每次重新运行程序结果如下:
(只生成10个随机数:i<11)   87 35 76 24 92 49 41 45 64 50
(只生成15个随机数:i<16)   87 35 76 24 92 49 41 45 64 50 79 59 72 83 36
(只生成20个随机数:i<21)   87 35 76 24 92 49 41 45 64 50 79 59 72 83 36 75 46 2 23 41
(只生成25个随机数:i<11)   87 35 76 24 92 49 41 45 64 50 79 59 72 83 36 75 46 2 23 41 22 71 89 2 93

2、不   同 Random对象调用next()方法,相同调用next()方法次数得出的随机数是相同的。(要保证2个next()的参数相同)例二:  public class Test {
        public static void main(String[] args) {
                Random r1 = new Random(1000);
                Random r2 = new Random(1000);
                        System.out.println("r1"+" "+"r2");
                for (int i = 1; i <10; i++) {
                System.out.println(r1.nextInt(100)+" "+r2.nextInt(100));
                }  
        }
}

结果:r1 r2
         87 87
         35 35
         76 76
          24 24
          92 92
          49 49
          41 41
          45 45
          64 64
3、 r.nextInt() 不带参数 和 带参数生成的随机数列表是不同的。








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2