【问题标题】:Random generate a year within a range随机生成一个范围内的年份
【发布时间】:2021-04-05 07:07:51
【问题描述】:

我有这个 java 类,我想使用随机类在 2020 年到 2022 年之间随机生成一年。我知道下面的代码不能解决问题,所以请你帮帮我

随机随机 = 新随机();

int year=random.nextInt(2022-2020 +1);

【问题讨论】:

  • 您的范围大小是3。基数是2020。选择一个 rand num 0 <= r <= 2 然后添加 2020
  • 只需将 2020 添加到您的结果中。一般random.nextInt((max - min) + 1) + min;

标签: java random


【解决方案1】:

.nextInt(x) 返回一个介于 0 和 x-1 之间的随机数,包括 0 和 x-1。 2022-2020+1 是不变的。算一算:写3 的方式很不方便,很冗长。 .nextInt(3) 将在 33% 的时间返回 0,在 33% 的时间返回 1,在 33% 的时间返回 2。不是你想要的。你想要的是 2020 33% 的时间、2021 33% 的时间和 2022 33% 的时间。

现在如何将 0/1/2 变成 2020/2021/2022...

我将把它作为练习留给读者!

【讨论】:

    猜你喜欢
    • 2018-04-08
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多