为啥 int answer = generator.nextInt(10) + 1;只产生 1 到 10 之间的数字?
Posted
技术标签:
【中文标题】为啥 int answer = generator.nextInt(10) + 1;只产生 1 到 10 之间的数字?【英文标题】:Why does int answer = generator.nextInt(10) + 1; only produce numbers between 1 and 10?为什么 int answer = generator.nextInt(10) + 1;只产生 1 到 10 之间的数字? 【发布时间】:2016-04-18 05:34:42 【问题描述】:我不明白为什么它不会生成超过 11 个。
这是我的测试代码:
import java.util.Random;
public class randomNumberTest
public static void main(String[] args)
Random rn = new Random();
//tests random number generator (between 1(inc) and 10(excl))
for(int i =0; i < 100; i++)
int answer = rn.nextInt(10) + 1;
System.out.println(answer);
【问题讨论】:
您是否阅读了您所调用方法的文档?您自己的代码中的注释说上限是排他性的(“excl”)......如果nextInt(10)
只能返回一个最大为 9 的值,并且您要加 1,您将如何期望得到 11 的答案到那个?
是的,我现在意识到我犯了一个愚蠢的错误。我确实读过它,但由于某种原因它没有沉入其中。很抱歉发了不好的帖子。
你关注这个帖子已经在讨论***.com/questions/363681/…***.com/questions/20389890/…
@SeanM - 如果您认为这是一篇糟糕的帖子,您可以随时使用问题下方的链接将其删除。欢迎使用 ***!
感谢您的热烈欢迎啊哈哈。我有很多要学习的!不幸的是,我不能再删除它了。
【参考方案1】:
阅读 Javadoc。 rn.nextInt(10)
生成从 0 到 9 的数字。加 1 得到从 1 到 10 的范围。
返回一个伪随机、均匀分布的 int 值,介于 0(包括)和指定值 (不包括)
【讨论】:
以上是关于为啥 int answer = generator.nextInt(10) + 1;只产生 1 到 10 之间的数字?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 werkzeugs `generate_password_hash` 的输出不是恒定的?
为啥 .replace() 不能处理从 escodege.generate() 生成的大字符串?
为啥 fit_generator 的准确性与 Keras 中的 evaluate_generator 的准确性不同?
history=model.fit_generator() 为啥 keras 历史是空的?
为啥在 Keras 中 fit_generator 的准确度、evaluate_generator 的准确度和自定义准确度不同?