Есть ли генератор случайных чисел с разбиением и пределами? - PullRequest
0 голосов
/ 16 апреля 2019

Я хочу создать какой-нибудь код.Который будет состоять из ввода чисел, который будет случайным образом разделен на 4 разных места, каждое место имеет предел, который он не может превышать.Я хотел бы использовать десятичные дроби, но использование int, а затем добавление десятичной дроби позже для презентации также будет работать в моем случае.Я приведу здесь пример.

Ввод 4920

1 не может превышать 6500,
2 не может превышать 1700,
3 не может превышать 9000,
4 не может превышать 1700

Но каждый раз, когда мне нужно, чтобы числа были абсолютно случайными, поэтому каждое место возвращает разное число каждый раз, пока ни одно из них не выходит за их пределы.Они могут равняться своим пределам, но я бы хотел, чтобы числа не были на максимуме все время, или 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 голосов
/ 16 апреля 2019

Вы можете использовать Random.nextInt(int bound) для генерации нового случайного числа от 0 до желаемой границы.
Если я правильно понял ваш вариант использования, вы хотите, чтобы случайные числа зависели от вашего ввода, поэтому не стесняйтесь написать метод, который рассчитывает эту оценку на основе вашего ввода.

Имейте в виду, что nextInt(int bound) возвращает случайное число от 0 (включая 0) до вашей границы, которая исключает .

...