作业帮 > 综合 > 作业

Random.nextInt()生成负数?为什么

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/08/07 13:30:03
Random.nextInt()生成负数?为什么
不是说Random.nextInt()生成的都是0-n的正整数么.在这个程序里我把随机数打印出来了,却是负数.这是为什么?
Random.nextInt()生成负数?为什么
如果调用.nextInt(),-MaxValue到MaxValue,.nextInt(n)才是0到n.
下面是JAVA API的原段
nextInt()
Returns the next pseudorandom, uniformly distributed int value from this random number generator's sequence.
再问: 我之前好像在百科还是哪里看到,说nextInt生成的是正整数啊。如果是从负无穷到正无穷,为什么还有那么多人问如何生成负随机数。
再答: 因为nextint(n)只能是0到n,此处n必须为正整数,如果为负则报错。 但如果你想它也能生成负数的话,直接int value=-rand.nextInt(30);即可 表示生成的是-30到0的
再问: 也就是说如果,在括号里面不加东西就能生成负无穷到正无穷的数了?还有nextDouble是不是也一样的啊?
再答: 是的,里面不加东西就会生成负数,JAVA里Int是32位的,范围是-2^31 ~ (2^31 - 1)。 而nextDouble是0到1之间的浮点数,64位