Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Получить число с указанной вероятностью

444
26 апреля 2010 года
patison
323 / / 15.03.2007
Чё-то я туплю уже с этим вопросом...
Вобщем нужна функция, которая вернёт 1 с определённой вероятностью ( или, в противном случае, 0 ). Т.е. я говорю функции "Верни мне 1 с вероятностью 0.6", и получить от неё либо 1 либо 0. Т.е. обычный рандом, как вы понимаете, здесь не канает.
Никак не могу найти решение...

Подскажите что-нибудь, кто знает.

спасыб.
44K
26 апреля 2010 года
mlt^^
63 / / 01.04.2010
Я чёт не могу понять в чем проблема ? Рандомишь число от 0 до 99. Оно с 60% вроятностью попадает в интервал от 0 до 59 следовательно если оно <59 верни 1 если больше верни 0. Если я не прав прошу простить ...
444
26 апреля 2010 года
patison
323 / / 15.03.2007
Да, что-то типа того.. Говорю-же - затупил немного.
Нашлась универсальная реализация :)
 
Код:
int f(float probability)
{
    if (((float)rand())/RAND_MAX < probability)
        return 1;

    return 0;
}

Прогнал раз 10 на цикле в 1000 итераций, выдаёт то что нужно.
Т.е. например для вероятности 0.5 возвращает 1 примерно 500 раз в среднем (489, 511, 502, ... итд)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог