0 / 0 / 1
Регистрация: 20.11.2014
Сообщений: 36
|
||||||
1 | ||||||
Некорректно работает рандомизация04.10.2015, 14:33. Показов 626. Ответов 11
Метки нет (Все метки)
В таком виде написана генерация рандомного числа:
если поменять 7 на любое другое число - все работает как надо
0
|
04.10.2015, 14:33 | |
Ответы с готовыми решениями:
11
Некорректно работает if Do while работает некорректно Некорректно работает Locate работает некорректно |
7789 / 6556 / 2984
Регистрация: 14.04.2014
Сообщений: 28,657
|
|
04.10.2015, 14:35 | 2 |
И сколько раз ты проверил?
0
|
0 / 0 / 1
Регистрация: 20.11.2014
Сообщений: 36
|
|
05.10.2015, 09:54 [ТС] | 3 |
несколько - стабильно выдает четыре
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
||||||
05.10.2015, 10:13 | 4 | |||||
Так работает нормально? Если да, то ошибка в другом месте.
0
|
0 / 0 / 1
Регистрация: 20.11.2014
Сообщений: 36
|
|
05.10.2015, 10:20 [ТС] | 5 |
Renji,
Он выдал разные последовательности с первоначальной четверкой 4 4 4 0 5 3 0 2 6 0 2 1 0 1 5
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
05.10.2015, 10:27 | 6 |
Значит, какой-то странный косяк в реализации алгоритма генерации случайных чисел. На g++ 4.9.2 эффект не воспроизводится, что первое число, что последнее абсолютно случайны.
0
|
75 / 75 / 8
Регистрация: 24.09.2015
Сообщений: 342
|
|
05.10.2015, 10:39 | 7 |
При отладке так и должно быть - если будет разное, то не повторить ошибку, в релиз версии должно все исправиться. Сейчас в ОС и в процессоры встраивают генераторы случайных чисел, а при отладке используется псевдослучайные. Таже вещь и с memcpy, в дебаг версии это будет копирование в цикле, в релиз версии будет использован DMA контроллер и все данные будет скопированы примерно за тоже время как одно данной
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
05.10.2015, 10:44 | 8 |
Для "повторить ошибку" srand(time(0)) заменяется на srand(1234) (вместо 1234 можно взять любое другое число). И нет, по хорошему, так как у ТС быть не должно. То что у него - признак плохого подбора алгоритма генерации случайных чисел.
0
|
233 / 99 / 27
Регистрация: 20.03.2014
Сообщений: 304
|
|
05.10.2015, 11:25 | 9 |
Как вариант, просто 0 в качестве seed дает последовательность чисел, остаток от деления на 7 которых дает 4. Не зря же алгоритм называют "псевдослучайным". Просто при 0 выбрался вектор в таблице из например одинаковых чисел.
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
05.10.2015, 11:29 | 10 |
Seed является текущее время. Получение текущего времени через time(0) (оно же time(nullptr) ), это просто такой костыль времен Си, связанный с тем что в Си перегрузку функций не осилили.
0
|
233 / 99 / 27
Регистрация: 20.03.2014
Сообщений: 304
|
|
05.10.2015, 11:30 | 11 |
0
|
7789 / 6556 / 2984
Регистрация: 14.04.2014
Сообщений: 28,657
|
||||||
05.10.2015, 15:08 | 12 | |||||
Так сделай:
0
|
05.10.2015, 15:08 | |
05.10.2015, 15:08 | |
Помогаю со студенческими работами здесь
12
Некорректно работает программа на С/С++ ВПР работает некорректно Некорректно работает программа Функция некорректно работает Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |