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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2011, 04:11   #1
LBlonde
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 15
По умолчанию Генерация случайных чисел

Нужно сгенерировать числа в диапазоне от 2 до 11 с помощью Math.random().

num=(int)(2+Math.random()*10);

Как сделать так, чтобы число 10 генерировалось в 3 раза чаще остальных чисел?

Заранее спасибо за ответы.
LBlonde вне форума Ответить с цитированием
Старый 30.11.2011, 09:44   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я бы вызывал предварительно Math.Random() и проверял, если получилось число > 0.333333 - тогда выдавал в результате 10
иначе генерил по вашей формуле пока формула вернёт НЕ 10 и выдывал в результат это сгенерённое число...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.11.2011, 11:49   #3
LBlonde
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 15
По умолчанию

Спасибо, хорошая идея. Я бы не додумалась.

Только, наверное, нужно диапазон выпадания десятки другой.
У нас 12 чисел, 10 должно встречаться в 3 раза чаще других.
Вероятность любого числа: 1 / 12.
Вероятность попадания 10 - в 3 раза больше, т.е. 1 / 12 *3 = 0.25.
Получается, больше 0.75 надо брать при генерации десятки или меньше 0.25?

Или можно было бы взять 2 шанса выпадания, а 3-й оставить в генерации остальных чисел?
LBlonde вне форума Ответить с цитированием
Старый 30.11.2011, 16:37   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Получается, больше 0.75 надо брать при генерации десятки или меньше 0.25?
ну да. Точно так. согласен с вашими выводами. (причём без разницы, что <0.25 - выход 10, что >=0.75 - выход 10.
любое из этих условий.
а вот в противном случае я бы генерил числа НЕ ВКЛЮЧАЮЩИЕ 10...

хотя я не уверен на 100%...

интуитивно чувствую, что разная вероятность получается, если брать по выпадению < 0.25 и НЕ ДОПУСКАТЬ 10-ку в противном случае,
и если брать 2 шанса выпадания (выпадение < 2/12 (вероятность в два раза больше) + допускать выпадение 10-ки в противном случае...

я в теорвере не силён...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.11.2011, 21:20   #5
LBlonde
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 15
По умолчанию

Я тоже не сильна в теорвере, к сожалению.

Очень вам благодарна, спасибо!
LBlonde вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генерация Случайных Чисел kop Помощь студентам 3 13.11.2011 23:43
Генерация случайных чисел Kati Помощь студентам 2 19.10.2010 21:28
Генерация случайных чисел?! Evgeny_1 Фриланс 12 17.03.2010 14:23
Генерация случайных чисел от -1 до 1 Shketer Общие вопросы Delphi 4 19.12.2009 23:43
Генерация Случайных Чисел Кирилл13 Помощь студентам 6 06.01.2009 10:31