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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2011, 20:29   #1
RayGGG
Пользователь
 
Регистрация: 13.02.2011
Сообщений: 10
По умолчанию Модификация рандома

Помогите с проблемой. Функция rand() у меня генерит значения 0,1,2,3. Нужно сделать так, чтобы random генерировал эти числа с некоторой вероятностью. Например 0 с вероятностью 0,2 и.т.д.. Подскажите какой нибудь метод или функцию для решения этой проблемы.
RayGGG вне форума Ответить с цитированием
Старый 16.02.2011, 20:50   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> Например 0 с вероятностью 0,2

Код:
if (rand() % 100 < 20)
  value = 0;
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 17.02.2011, 03:43   #3
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Используй вес.
Например, тебе надо числа 0, 1 и 2.
0 с вероятностью 0.2, 1 - 0.4, 2 - 0.4
Это соответствует весу 1, 2, 2.
Тогда в rand%(1+2+2) 0 будет соответствовать 0, 1 - 1 и 2, 2 - 3 и 4.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модификация фаила *.db @#dro# Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 30.01.2010 18:15
модификация программы olla-la Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 10.05.2008 14:01
Составление билетов(поправка рандома) Jodu Паскаль, Turbo Pascal, PascalABC.NET 23 09.04.2008 22:48