Получение диапазона Math.random между 50–5000 - PullRequest
0 голосов
/ 20 июня 2019

Я хочу получить минимальные, максимальные и средние значения массива из Math.random в диапазоне от 50 до 5000. Это мой код ниже, но он исключает 50 каждый раз, когда я запускаю его. Я вижу, что минимум показан 51 или иногда 52. Как я могу получить его 50 или ниже 50 за мин, потому что Макс показывает правильно. Единственная проблема - минимальная часть.

Заранее спасибо

public class Main {

    private double max(double[] array) {
        double max = 0;

        for (int i = 0; i < array.length; i++) {
            if (array[i] > max) {
                max = array[i];
            }
        }
        return max;
    }

    public double min(double[] array) {
        double min = array[0];

        for (int i = 0; i < array.length; i++) {
            if (array[i] < min) {
                min = array[i];
            }
        }
        return min;
    }

    public static void main(String[] args) {
        double array[] = new double[1000];
        for (int i = 0; i < array.length; i++) {

            array[i] =  ((Math.random() * ((5000 - 50) + 1)) + 50);
        }

        Main main = new Main();

        double total = 0;

        for (int i = 0; i < array.length; i++) {
            total = total + array[i];
        }

        double average = total / array.length;


        System.out.println(main.max(array));
        System.out.println(main.min(array));
        System.out.println(average);


    }
}

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

в этом сегменте вашего кода избавьтесь от плюса, java включен в стартовый номер, но исключен в конце. попробуйте избавиться от "+ 1" и сделайте 5000 теперь 5001.

    array[i] =  ((Math.random() * ((5000 - 50) + 1)) + 50);
0 голосов
/ 20 июня 2019

Сделай так.Это намного проще.

      Random rand = new Random();
      // generate 1000 elements between 50 inclusive and 5000 exclusive.
      double[] nums = rand.doubles(1000,50,5000).toArray();

или вы предпочитаете использовать цикл


   Random rand = new Random();
   double[] nums = new double[1000]
   for (int i = 0; i < nums.length; i++) {
      nums[i] = rand.nextDouble(4950) + 50; 
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...