Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2011, 11:40   #1
turtles
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 59
По умолчанию псевдослучайное число из промежутка [-n;n)

Здравствуйте! У меня вот такой вопрос по коду, подскажите по заданию я правильно написал код или что не правильно?
Вот задание:
Создайте программу, которая будет генерировать и выводить на экран
вещественное псевдослучайное число из промежутка [-3;3).
Код:
public class MathRandom {
    public static void main(String args[]){
      final int min = -3;
      final int max = 3;
        double  ran = Math.random()* min * max;
        System.out.println("Число из промежутка -> [-3;3) = " + ran);
    }
}
turtles вне форума Ответить с цитированием
Старый 22.08.2011, 13:04   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не, неправильно...
должно быть что-то вроде
Код:
double  ran = Math.random()* (max - min) + min;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.08.2011, 13:09   #3
turtles
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 59
По умолчанию

подскажите пожалуйста как правильно вычисляется промежуток или по какой формуле
если например вот такой диапазон чисел (-3;3),(-3;3],[-3;3] и [-3;3) или такой (-3;-3),(-3;-3],[-3;-3] и [-3;-3)
turtles вне форума Ответить с цитированием
Старый 22.08.2011, 16:25   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

turtles
простите, либо я не понимаю нотацию, либо Вы написали 8 диапазонов...

Как я понимаю, круглая скобка означает, что граница диапазона не включается в диапазон, а квадратная - что включается...
А вот что означает перечисление диапазонов через запятую - простите, я не могу понять...

ну и последнее.
(-3;-3) - это вообще нонсенс! Как можно сгенерировать число от минус трёх до минус трёх, причём минус три не входит в диапазон... Ответ - пустое множество. В данном диапазоне нет и не может быть вообще чисел!

Последний раз редактировалось Serge_Bliznykov; 22.08.2011 в 16:28.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.08.2011, 15:22   #5
Vasilyich
 
Регистрация: 04.08.2011
Сообщений: 9
По умолчанию

Позволю добавить: Math.random возвращает псевдослучайное число в диапазоне [0,1). Поэтому для получения в диапазоне [min,max) - таки да, как сказано:
Цитата:
double ran = Math.random()* (max - min) + min;
А для диапазона (min,max] -
double ran = max - Math.random()* (max - min);
Для диапазонов же (min,max) и [min,max] придется нечто изображать - например, генерить два числа на примыкающих равных промежутках и выбирать с вероятностью 0.5 одно из них. При этом одно (но только одно) значение будет иметь или удвоенную вероятность выбора или нулевую.
Может, у кого будут варианты поинтереснее.
Vasilyich вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос промежутка времени ГОСЕАН БД в Delphi 7 14.06.2011 13:10
Запросите у пользователя положительное число А и найдите сумму всех натуральных чисел из промежутка [1,A] white_angel73 Паскаль, Turbo Pascal, PascalABC.NET 13 22.04.2010 23:35
Нахождение наибольшего числа из промежутка BaronVik Паскаль, Turbo Pascal, PascalABC.NET 4 21.04.2010 16:36
Найти сумму всех чисел из промежутка от А до В, кратных 8 и 16 nickky2 Паскаль, Turbo Pascal, PascalABC.NET 8 05.12.2008 13:27
Я-юрист, есть задача - Найти сумму всех чисел из промежутка от А до В, кратные 13 и 5 Filosofijka Помощь студентам 1 24.11.2008 19:57