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 位数字 [重复]的主要内容,如果未能解决你的问题,请参考以下文章