Random.nextInt()生成负数???为什么
不是说Random.nextInt()生成的都是0-n的正整数么。在这个程序里我把随机数打印出来了,却是负数。这是为什么?...
不是说Random.nextInt()生成的都是0-n的正整数么。在这个程序里我把随机数打印出来了,却是负数。这是为什么?
展开
展开全部
返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int
值。nextInt 的常规协定是,伪随机地生成并返回指定范围中的一个 int 值。所有可能的
n 个 int 值的生成概率(大致)相同。该算法特别对待 n 是 2 的次幂的情况:它从底层伪随机数生成器中返回正确的高位数。在不是特殊处理的情况中,将返回正确的低
位数。众所周知,线性同余伪随机数生成器(比如此类所实现的)在其低位的值序列中周期较短。因此,如果 n 是 2
的次幂(幂值较小),则这种特殊情况将大大增加此方法的后续调用所返回的值序列长度。
追问
什么是伪随机数呢。额,你还是没说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.
下面是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的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询