是否有一个带有分割和限制的随机数生成器?

时间:2019-04-16 11:46:22

标签: java random int double

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

输入4920

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

但是每次我需要数字完全随机的位置时,因此每个地方每次都返回一个不同的数字,而没有一个数字超出其限制。它们可以等于其极限,但是我希望数字不要一直处于最大状态,或者最大为3,最大为3。

我真的不知道从哪里开始,在这个阶段,我所做的只是能够使用一定百分比来锻炼他们去的地方。基本,但没有检查就没有随机性。输入永远不会超过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);
    }

}

1 个答案:

答案 0 :(得分:0)

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

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