【问题标题】:Is there a random number generator with splitting and limits?是否有具有拆分和限制的随机数生成器?
【发布时间】:2019-09-06 12:17:50
【问题描述】:

我正在寻找创建一些代码。这将包含一个数字输入,它将随机分成 4 个不同的地方,每个地方都有一个不能超过的限制。我想使用小数,但是在我的情况下,使用 int 然后稍后添加小数只是为了演示也可以。我这里举个例子。

输入 4920

1 不能超过 6500,
2不能超过1700,
3不能超过9000,
4 不能超过 1700

但是每次我需要数字去哪里是完全随机的,所以每个地方每次都会返回一个不同的数字,而没有一个超过它们的限制。它们可以等于它们的极限,但我希望数字不要一直处于最大值,或者 3 为最大值,1 低于。

我真的不知道从哪里开始,在这个阶段我所做的只是能够使用百分比来锻炼他们去哪里。基本的,但没有检查就没有随机性。输入永远不会超过 4950,因为如果用户尝试输入更高的值,我会抛出错误。

以下是基本概念,但这总是会产生一个百分比,所以无论输入什么数字都会产生相同的结果。我只是在寻找这个,但随机性。

它通过将总质量分布在所有轴组上来计算卡车的轴重,但每个轴组都有限制。因此,在这个卡车组合中,总不能也不会超过 49.50,轴组不能超过 6.5、17.0、9.0 和 17.0。

下面的这段代码基本上是我们现在手动执行的,但希望它具有一些随机性,所以它并不总是相同的结果

public static void main(String[] args) 
    {
    double GrossWeight, SteerWeight, DriveWeight, DollyWeight, BogieWeight;
    System.out.println("PBS2 3 Axle Truck and 3 Axle Dog Combination Only");
    System.out.print("Enter Gross Weight:");
    Scanner Scan = new Scanner (System.in);
    GrossWeight = Scan.nextDouble();

    SteerWeight = (GrossWeight/0.1313);
    System.out.print("Steer Axle Weight:");
    System.out.println(SteerWeight);

    DriveWeight = (GrossWeight/0.3434);
    System.out.print("Drive Axle Weight:");
    System.out.println(DriveWeight);

    DollyWeight = (GrossWeight/0.1818);
    System.out.print("Dolly Axle Weight:");
    System.out.println(DollyWeight);

    BogieWeight = (GrossWeight/0.3434);
    System.out.print("Bogie Axle Weight:");
    System.out.println(BogieWeight);
    }

}

【问题讨论】:

  • 老实说,我没有得到你的榜样,也没有得到你想要达到的目标。你想分裂什么?这些限制与输入有何关系,例如如果输入不能高于 4950,为什么会有 6500 或 9000 的限制?这些数字是什么意思?
  • 请提供minimal reproducible example,因为不清楚您在问什么。

标签: java random int double


【解决方案1】:

您可以使用Random.nextInt(int bound) 生成一个介于 0 和所需范围之间的新随机数。
如果我正确理解了您的用例,您希望随机数取决于您的输入,因此请随意编写一个根据您的输入计算此界限的方法。

请注意,nextInt(int bound) 返回一个介于 0(包括 0)和 排除的界限之间的随机数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    相关资源
    最近更新 更多