|
гсч и random seed: что делать если srand(time(NULL)) не устраивает
|
|||
---|---|---|---|
#18+
написала следующее, но может есть стандартное решение? rseed.h Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
rseed.cpp Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2019, 16:41 |
|
гсч и random seed: что делать если srand(time(NULL)) не устраивает
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2019, 16:51 |
|
гсч и random seed: что делать если srand(time(NULL)) не устраивает
|
|||
---|---|---|---|
#18+
mini.weblab, там трабла именно в начале последовательности. посему можно поступить до безобразия тупо... запросить составную часть времени - например мкс. И взять это как кол-во для холостого хода rand()... удачи вам (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2019, 17:05 |
|
гсч и random seed: что делать если srand(time(NULL)) не устраивает
|
|||
---|---|---|---|
#18+
Cerebrum, kolobok0 спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2019, 18:15 |
|
гсч и random seed: что делать если srand(time(NULL)) не устраивает
|
|||
---|---|---|---|
#18+
Этот код тестировался где-нибудь? Системные часы оперируют дискретностью в десятки миллисекунд, как следствие наносекуды это просто добавление ноликов в конец, т.е. можно получать одно и тоже на протяжении нескольких миллисекунд .... но могу ошибаться, техника идет вперед ... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2019, 20:53 |
|
гсч и random seed: что делать если srand(time(NULL)) не устраивает
|
|||
---|---|---|---|
#18+
Dima TСистемные часы оперируют дискретностью в десятки миллисекунд, как следствие наносекуды это просто добавление ноликов в конец, т.е. можно получать одно и тоже на протяжении нескольких миллисекунд .... Именно поэтому только нубы вызывают srand() больше одного раза за всё время работы программы. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2019, 21:14 |
|
гсч и random seed: что делать если srand(time(NULL)) не устраивает
|
|||
---|---|---|---|
#18+
Dima TСистемные часы оперируют дискретностью в десятки миллисекунд, как следствие наносекуды это просто добавление ноликов в конец, т.е. можно получать одно и тоже на протяжении нескольких миллисекунд .... но могу ошибаться, техника идет вперед ... это неверно, системные часы на современных ОС оперируют с точностью от 100нс вот ссылка на статью и тесты : https://www.modernescpp.com/index.php/the-three-clocks точность 100нс означает, что ошибка измерения может составить до 100нс - т.е. ноликов там нет ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2019, 17:15 |
|
гсч и random seed: что делать если srand(time(NULL)) не устраивает
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Именно поэтому только нубы вызывают srand() больше одного раза за всё время работы программы. и что же делать, если программу генерирующую случайную последовательность нужно вызвать 1000 раз подряд? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2019, 17:20 |
|
гсч и random seed: что делать если srand(time(NULL)) не устраивает
|
|||
---|---|---|---|
#18+
почитала документацию: основные ошибки были с определением переменных проблема называется initialization of random number generator (random seed) to some distinctive run-time value :-) т.е мне нужно было, чтобы ре-инициализация гсч проходила чаще чем 1 раз в секунду поменяла наносекунды на микросекунды (хотя это, скорее всего, избыточно и миллисекунд было бы достаточно) пока остановилась на этом rseed.h Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
rseed.cpp Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2019, 17:39 |
|
гсч и random seed: что делать если srand(time(NULL)) не устраивает
|
|||
---|---|---|---|
#18+
mini.weblabи что же делать, если программу генерирующую случайную последовательность нужно вызвать 1000 раз подряд? В пределах одной секунды? Передавать ей сид снаружи или использовать "настоящий" ГСЧ (из /dev/urand, например). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2019, 18:12 |
|
гсч и random seed: что делать если srand(time(NULL)) не устраивает
|
|||
---|---|---|---|
#18+
Как было выше замечено - не надо инициализировать ГПСЧ более одного раза. Это же псевдо -случайная последовательность. Зная что инициализация может произойти раз в секунду 100-1000 вариантами элементарно восстановить 100-1000 последовательностей и все их общитать. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2019, 20:45 |
|
гсч и random seed: что делать если srand(time(NULL)) не устраивает
|
|||
---|---|---|---|
#18+
mini.weblabDimitry Sibiryakov Именно поэтому только нубы вызывают srand() больше одного раза за всё время работы программы. и что же делать, если программу генерирующую случайную последовательность нужно вызвать 1000 раз подряд?пользоваться нормальными генераторами, особенно если это какое-то моделирование - тынц и ещё хуже если это криптография - тынц но точно не стандартым ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2019, 08:44 |
|
|
start [/forum/topic.php?fid=57&tid=2017586]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 259ms |
total: | 390ms |
0 / 0 |