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

不是说Random.nextInt()生成的都是0-n的正整数么。在这个程序里我把随机数打印出来了,却是负数。这是为什么?... 不是说Random.nextInt()生成的都是0-n的正整数么。在这个程序里我把随机数打印出来了,却是负数。这是为什么? 展开
 我来答
1198512863
2013-08-07
知道答主
回答量:17
采纳率:0%
帮助的人:4.2万
展开全部
  1. 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int
    值。nextInt 的常规协定是,伪随机地生成并返回指定范围中的一个 int 值。所有可能的
    n 个 int 值的生成概率(大致)相同。

  2. 该算法特别对待 n 是 2 的次幂的情况:它从底层伪随机数生成器中返回正确的高位数。在不是特殊处理的情况中,将返回正确的低 

位数。众所周知,线性同余伪随机数生成器(比如此类所实现的)在其低位的值序列中周期较短。因此,如果 n 是 2 

的次幂(幂值较小),则这种特殊情况将大大增加此方法的后续调用所返回的值序列长度。

追问
什么是伪随机数呢。额,你还是没说nextint生成的数的范围啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
四月不愚人
2013-08-07
知道答主
回答量:22
采纳率:0%
帮助的人:19.2万
展开全部
如果调用.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的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式