new Random().nextInt(999999) 有时会生成 5 位数字 [重复]

Posted

技术标签:

【中文标题】new Random().nextInt(999999) 有时会生成 5 位数字 [重复]【英文标题】:new Random().nextInt(999999) sometimes generates 5 digit number [duplicate] 【发布时间】:2018-04-25 18:28:57 【问题描述】:

我正在使用新的Random().nextInt(999999) 来生成一个 6 位随机数。但有时它会生成 5 位数字。而且我必须明确检查生成的数字是否不是 6 位数。

为什么这个方法会这样做?还有没有其他方法可以确定它只生成 6 位随机数。

【问题讨论】:

因为0到999999之间有五位数字。 我对这个问题投了反对票,因为没有任何研究证据。请edit 您的问题包括您所做的研究以及准确您遇到困难的地方。如果你能做到这一点,我可能会撤回我的反对票。 我无话可说赞美你的评论@JoeC ^_^ 看看:***.com/questions/5271598/… 我不想让你沮丧,但它也可以生成 4 位、3 位、2 位和 1 位数字。 【参考方案1】:

Random().nextInt(999999) 生成介于 0 和 999998 之间的数字,因此您有大约 10% 的机会获得小于 100000(5 位或更少位)的数字。

试试

100000 + Random().nextInt(900000)

您将获得 100000 - 999999 范围内的数字

【讨论】:

Random.nextInt(int) 返回一个值exclusive到限制。 这个答案是正确的,除了 Random().nextInt(999999) 生成 0 到 999998 之间的数字 @ElliottFrisch,Fatih Ozcan 谢谢,我修正了我的答案 请问有人可以删除问题吗? @MehrajMalik 为什么?它有一个赞成的答案,也将帮助其他人。【参考方案2】:

Random().nextInt(999999) 有时会生成 5 位数字,因为它会生成 0 到 999999 之间的随机值。

使用以下 sn-p 生成范围内的随机数:

Random random = new Random();
minimum + random.nextInt(maximum - minimum + 1);

【讨论】:

以上是关于new Random().nextInt(999999) 有时会生成 5 位数字 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

关于Random(47)与randon.nextInt(100)的区别

Random类,数组

python基础-02

java 随机数产生 常用类及方法

JavaSE混杂知识点记录

random.nextInt()与Math.random()基础用法