【问题标题】:Java: Create a random integer array with an offset/distance between each integerJava:创建一个随机整数数组,每个整数之间有一个偏移量/距离
【发布时间】:2016-03-21 08:03:56
【问题描述】:

我想在 Java 中创建一个随机整数数组(最小值和最大值),但我希望每个随机生成的数字彼此之间有一个偏移距离。

即假设我想创建一个数组列表,其中包含 10 个介于 20 和 100 之间的整数,偏移量/距离应为 5。该数组可能是 21、28、35、52、58、65、72、80、86、95 .

非常感谢

【问题讨论】:

  • “偏移量/距离应为 5”是什么意思?例如,在您的示例中,您在 35 和 52 之间的距离超过 5。
  • 我的意思是每个数字应该至少有5个整数的差异。
  • 在 2 到 20 范围内选择 10 个随机(但不同)整数(参见例如 this),然后将每个数字乘以 5。

标签: java arrays random offset


【解决方案1】:

简单的变体(不处理溢出):

int min;
int max;
int offset;

public int getRandomNumber(int current) {
    int curMin = current - offset;
    if (curMin < min)
        curMin = min;
    int curMax = current + offset;
    if (curMax > max)
        curMax = max;
    return curMin + (int) ( Math.random() * (curMax - curMin + 1));
}

并获得第一个数字:

int first = min + (int) ( Math.random() * (max - min + 1));

【讨论】:

    猜你喜欢
    • 2012-04-29
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 2013-01-03
    • 2018-10-31
    • 2012-02-10
    相关资源
    最近更新 更多