是否存在具有拆分和限制的随机数生成器?

问题描述 投票:-1回答:1

我想创建一些代码。其中包含一个数字输入,它将随机分成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);
    }

}

java random int double
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.