|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.08.2012, 21:03 | #1 |
Пользователь
Регистрация: 24.10.2010
Сообщений: 67
|
Не совершенство рандома
У меня рандом случайным образом выбирает элементы из двухмерного массива 10*10 (сначала i потом j mas[i][j])
я заметил одну проблему он почти не выбирает 10 строчку. Как это исправить?
Если я нарушил какие-либо правила прошу простить и сообщить...
|
16.08.2012, 22:56 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Позвольте мне угадать - rand() % 10?
|
17.08.2012, 09:09 | #3 |
Пользователь
Регистрация: 24.10.2010
Сообщений: 67
|
точнее
rand%10+1 при том про рандом почти ни чего не знаю нашёл пример и от него плясал
Если я нарушил какие-либо правила прошу простить и сообщить...
|
17.08.2012, 09:24 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Да все этот пример находят, только он плох тем, что хорошо работает когда нам нужно число, кратное MAX_RAND...
Попробуйте так: rand() * 10 / MAX_RAND; Думаю это сразу повысит совершенство рандома |
18.08.2012, 08:28 | #5 |
Пользователь
Регистрация: 24.10.2010
Сообщений: 67
|
поясни что такое MAX_RAND
Если я нарушил какие-либо правила прошу простить и сообщить...
|
18.08.2012, 10:03 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Виноват, описка, не MAX_RAND а RAND_MAX
http://www.cplusplus.com/reference/c.../cstdlib/rand/ |
18.08.2012, 13:11 | #7 | |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Здесь явная ошибка. 0 никогда не появится, зато будет выпадать 10, под которое у нас не зарезервировано место.
Цитата:
Код:
Код:
2. freq2[0] = 0 (как и было предсказано). Почему freq3[0] = 0.2 - надеюсь, страдалец ТС разберётся... |
|
18.08.2012, 13:26 | #8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
case 1 и 2 будут генерить в интервале от от 0 до 10 включительно
|
18.08.2012, 13:43 | #9 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
|
18.08.2012, 13:52 | #10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Согласен в case 1 нулей не будет. Выход за границу масива все равно будет. Поменяйте местами freq2 и freq3 и ТС не придется разбираться откуда во freq3 берется коефициент 2
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Решение рандома | Ромашка68 | Общие вопросы C/C++ | 6 | 08.06.2012 08:47 |
Модификация рандома | RayGGG | Общие вопросы C/C++ | 2 | 17.02.2011 03:43 |