Страницы

Поиск по вопросам

среда, 27 марта 2019 г.

Заполнение массива случайными числами из диапазона [-15,15] с помощью Math.random

Не получается вывести массив из 12 случайных чисел из промежутка [-15,15]
int[] array; array = new int[12]; for (int i = 0; i < array.length; i++) { array[i] = ((int)(Math.random() * 12) - 15); System.out.println(array[i]); }
выводит только отрицательные числа


Ответ

Смотрите документацию
Math.random() возвращает число типа double от 0 до 1.
Вы зачем-то множите это значение на 12.
По сути, у вас интервал от -15 до 15 включительно, плюс 0, т.е. диапазон 31. Согласны?
Вот 31 и надо множить на Math.random() - будете получать числа от 0 до 30.
Чтобы получить не от 0 до 30, а от -15 до 15, нужно отнять 15, что вы совершенно верно сделали.
UPD. Обновил ответ, спасибо за исправление. Первоначально была такая мысль:
int[] array = new int[12]; for (int i = 0; i < array.length; i++) { array[i] = (int) Math.round((Math.random() * 30) - 15); System.out.println(array[i]); }
Но немного подумал и понял, что значения будут не совсем корректные, да и ответ @Regent попроще.

Комментариев нет:

Отправить комментарий