【问题标题】:Java's Random.nextInt() produces numbers between what and what?Java Random.nextInt() 产生介于什么和什么之间的数字?
【发布时间】:2013-05-17 05:07:52
【问题描述】:

Oracle java 文档

所有 232 个可能的 int 值都是以(大约)相等的概率产生的。

这是否意味着生成的值范围从 -(232)232,或这是否意味着 -(216)216

【问题讨论】:

  • -(2^32) 到 2^32 是 2^33+1 个值。 -(2^16) 到 2^16 是 2^17+1 个值。这不是 Java,只是简单的数学。 ;)

标签: java random int


【解决方案1】:

表示从 -231 (java.lang.Integer.MIN_VALUE) 到 231-1 (java.lang.Integer.MAX_VALUE)。请参阅the Javadoc for java.lang.Integer§4.2.1 "Integral Types and Values" of The Java Language Specification, Java SE 7 Edition

【讨论】:

  • 你的意思是-2^-31还是-2^31?
  • @vishal_aim:哎呀,哈,谢谢,已修复。这将是一个有趣的“int”定义! :-P
【解决方案2】:

正如文档所说,nextInt() 返回一个 int,而在 java 中 int 是一个 32 位整数。所以它会在那个range

【讨论】:

    猜你喜欢
    • 2015-02-09
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 2018-10-22
    • 2015-02-20
    • 1970-01-01
    相关资源
    最近更新 更多