Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
1 / 1 / 0
Регистрация: 09.03.2016
Сообщений: 25
1

Вероятность в rand()

12.09.2016, 17:20. Показов 1493. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хочу поинтересоваться функция rand() с привязкой ко времени, то у нее вероятность будет одинаковая или иной, тогда как сделать что бы вероятность событий была равномерная.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.09.2016, 17:20
Ответы с готовыми решениями:

Можно ли задать вероятность выпадения числа в функции Rand();
Вопрос в названии темы если можно как то задать вероятность то хотелось бы увидеть пример в коде!...

rand()
Как записать чтобы rand() возвращало true и false. Или подскажите другой способ. Мне нужно...

rand
#include "stdafx.h" #include <iostream> #include <conio.h> #include <cstdlib> // гениратор...

rand()
начал учить си++, наткнулся на такую штуку... Накидал простую программку (консольную) и увидел...

7
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
12.09.2016, 17:47 2
Ты это про равномерное распределение?
0
1 / 1 / 0
Регистрация: 09.03.2016
Сообщений: 25
13.09.2016, 15:00  [ТС] 3
Да, вроде как про него
0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
14.09.2016, 08:48 4
Насколько я помню, вот это нужно вызывать для того чтобы числа выпадали случайные по-настоящему, следовательно, если это не написать, то числа будут выпадать каждый раз одни и теже.
C++
1
srand(time(NULL));
0
1 / 1 / 0
Регистрация: 09.03.2016
Сообщений: 25
14.09.2016, 09:21  [ТС] 5
Это я понимаю, мне интересно если rand()%3 то вероятность получить 0, 1 и 3 будет по 0.33 или чаше будет вызываться 1 по сравнению с другими
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
14.09.2016, 09:27 6
Лучший ответ Сообщение было отмечено mrDarz как решение

Решение

Для того, что бы методом rand получить нужное распределение требуется дополнительные телодвижения(например метод обратного преобразования).
Проще использовать генераторы из C++11(Генерация псевдослучайных чисел)
1
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,523
14.09.2016, 09:56 7
Цитата Сообщение от mrDarz Посмотреть сообщение
rand()%3 то вероятность получить 0, 1 и 3 будет по 0.33
надеюсь,имелось ввиду 0 1 2
говорят, лучшее распределие дает вот такой фокус
C++
1
int i=((double)rand()/(double)RAND_MAX)*3;
но сам лично не проверял
вот есть маленькое исследования насчет остатка от деления
http://cppstudio.com/post/339/
1
1 / 1 / 0
Регистрация: 09.03.2016
Сообщений: 25
14.09.2016, 15:32  [ТС] 8
Спасибо всем, да имел виду конечно 0 1 2.
0
14.09.2016, 15:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.09.2016, 15:32
Помогаю со студенческими работами здесь

rand
srand(time(NULL)); int s = rand()%1000 +1; генерирует бред вроде 3,4,7,10,14,19,21,26,29... ...

rand
всем привет) что означает вот это строка double value = (rand()%1000)/100.0 - 5.0; и чем она...

rand()%(-20)%(20);
Нужно сорт случ числа от -20 до 20 Делаю так rand()%(-20)%(20); получаю числа от 0 до...

Rand()
Ребята срочно nомогите , как сгенерировать с nомощью функции rand() рандомные числа 0 или 1 ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru