【问题标题】:How to find a Random Value with negative increments, and positive & negative values in Java?如何在Java中找到具有负增量以及正负值的随机值?
【发布时间】:2021-02-18 02:08:19
【问题描述】:

使用下面的数据集,我怎样才能找到这个集合之间的随机数,具体使用 math.random 函数。

-12, -8, -4, 0, 4, 8, 12

int secondCase = (int)(Math.random()*7)*(-4)-12;

我一直在尝试上面的代码和其他东西,但它对我不起作用

【问题讨论】:

  • “它对我不起作用” 它在什么方面不起作用?你得到了什么,你期望什么?
  • 你试过用4代替(-4)吗?或者,您是否尝试过使用+12 而不是-12
  • 一种选择是将数字放入一个数组并随机选择一个索引。或者((int)(Math.random() * 7) - 3) * 4 选择一个随机数0 <= r <= 6 然后移位-3 <= r <= 3 然后乘以4。
  • 您能否编辑您的问题以显示一个随机可以工作的示例?

标签: java math mathematical-optimization


【解决方案1】:

我认为你不能用 Math.random() 来做,因为这个方法返回一个带正号的双精度值,大于或等于 0.0 且小于 1.0。

也许,你可以试试这样:

    int[] desiredValues  = {-12, -8, -4, 0, 4, 8, 12};

    Random random = new Random();

    for (int i = 0; i < 100; i++) {
        int randomIndexBetweenZeroToSix = random.nextInt(7);
        System.out.println("random index: " + randomIndexBetweenZeroToSix);
        System.out.println("desired value: " + desiredValues[randomIndexBetweenZeroToSix]);
    }

在这个例子中,我只是打印了数组的随机索引和基于随机索引的数组值。

【讨论】:

  • randomIndexBetweenOneToSix 非常糟糕的名字,因为它错了!
猜你喜欢
  • 2015-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-29
  • 1970-01-01
  • 1970-01-01
  • 2013-11-24
相关资源
最近更新 更多