|
0 / 0 / 0
Регистрация: 15.10.2015
Сообщений: 23
|
||||||
Использование функции rand()25.10.2015, 16:20. Показов 3042. Ответов 20
Метки нет (Все метки)
Доброго времени суток, при использовании библиотечной функции rand() (которая должна генерировать случайное число, как я понимаю) выбирается постоянно одно число - 41.
В чем дело и как это исправить?
0
|
||||||
| 25.10.2015, 16:20 | |
|
Ответы с готовыми решениями:
20
Использование функции rand()
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 25.10.2015, 16:26 | |
|
srand() в самом начале.
1
|
|
|
0 / 0 / 0
Регистрация: 15.10.2015
Сообщений: 23
|
|
| 25.10.2015, 16:40 [ТС] | |
|
nmcf, не получилось, можно по подробнее?
0
|
|
|
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
|
||||||
| 25.10.2015, 16:43 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 15.10.2015
Сообщений: 23
|
||||||
| 25.10.2015, 16:55 [ТС] | ||||||
|
Dimension, Если ставлю перед main()
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 25.10.2015, 17:07 | |
|
Да почему перед? В самом начале main().
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2015
Сообщений: 23
|
||||||
| 25.10.2015, 17:18 [ТС] | ||||||
|
nmcf, Если ставлю после тоже не получается
![]()
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 25.10.2015, 17:19 | |
|
Там же всё объяснено: <ctime> подключи.
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2015
Сообщений: 23
|
|
| 25.10.2015, 17:32 [ТС] | |
|
nmcf, Я понял что это связано с time, но что с этим делать не знаю. Занимаюсь по "C++: базовый курс Herbert Schildt". В книге был приведен исходный код программы который я продемонстрировал в начале, не о каких srand() и time речи не идет.
Если бы я пользовался VS, srand() не понадобилась бы?
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 25.10.2015, 18:37 | |
|
Везде он нужен для инициализации генератора псевдослучайных чисел.
0
|
|
|
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
|
|
| 26.10.2015, 01:11 | |
|
Точнее так Rand() умышленно генерирует одинаковую последовательность для отладке а когда добавляешь srand и привязываешь его к time то исходной точкой генерации выступает время, текущее! Есть тонкий момент что для генерации подряд нескольких значений надо делать паузу хотя-бы в секунду, ну или использовать более совершенный генератор!
Добавлено через 3 минуты Я лично еще srand пускал в цикле с прибавление туда значения I из цикла но меня тут помидорами закидали, хотя на распределения не как не повлияло (проверял опытным путем)
2
|
|
| 26.10.2015, 13:43 | |
|
Не по теме: gazlan, При повторном запуске программы, печатаются те же самые числа. Суть в том, что функция rand() один раз генерирует случайные числа, а при последующих запусках программы всего лишь отображает сгенерированные первый раз числа. Такая особенность функции rand() нужна для того, чтобы можно было правильно отладить разрабатываемую программу Действительно мануалы надо читать, извиняюсь если выразился не так, но суть была именно эта источник
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 26.10.2015, 14:03 | |
|
Mesteriis, это чушь. Где эти сгенерированные числа хранятся в перерывах между запусками? Просто генерирующий алгоритм по умолчанию инициализируется одним и тем же значением.
1
|
|
|
Модератор
|
|
| 26.10.2015, 14:34 | |
|
BeetleGold, так или так.
Про новый рэндом подробности в великолепной статье уважаемого MrGluck. Ну и справочная инфа.
1
|
|
|
0 / 0 / 0
Регистрация: 15.10.2015
Сообщений: 23
|
|
| 26.10.2015, 17:39 [ТС] | |
|
Всем спасибо, разобрался.
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2015
Сообщений: 23
|
||||||
| 01.11.2015, 18:02 [ТС] | ||||||
|
Возвращаюсь к этой теме, потому что получилось получать рандомные значения при помощи функции rand(), не используя srand() и таймер при котором число изменялось с течением времени и его нельзя было зафиксировать.
Вот код программы в которой используется только rand() и новое значение можно получить в любой момент.
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 01.11.2015, 19:57 | |
Сообщение было отмечено BeetleGold как решение
Решение
Каждый вызов rand() в пределах одного сеанса будет давать разные числа, но сама последовательность будет одна и та же.
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2015
Сообщений: 23
|
|
| 01.11.2015, 20:23 [ТС] | |
|
nmcf, Согласен, последовательность будет одной и той же. Если рассуждать в этом направлении то при использовании time последовательность тоже будет одной и той же (от 0 и до определенного момента времени). Вот только в этом случае значение не получится сделать фиксированным (ведь оно изменяется с течением времени).
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 01.11.2015, 20:32 | |
|
Если тебе нужны одинаковые последовательности, зачем тему создал?
0
|
|
| 01.11.2015, 20:32 | |
|
Помогаю со студенческими работами здесь
20
Альтернатива функции rand()? Не работает rand() в функции Алгоритм функции rand() Особенности использования функции rand() в С++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|