| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > rand(), постоянное увеличение генерируемого числа |
| Автор: awesome 20.10.2010, 00:23 | ||
проблема в следующем: при запуске программы получается случайное число, при последующих запусках это число постоянно увеличивается. Не могу понять в чем может быть проблема...
|
| Автор: Crafty 20.10.2010, 00:32 |
| awesome, да вроде всё нормально работает. Попробуйте тут http://liveworkspace.org/code/006e6f35b4d0e7e9864b7a79208f318f |
| Автор: awesome 20.10.2010, 00:37 |
| хм...странно. по ссылке действительно работает. пишу в 2006 студии. |
| Автор: boostcoder 20.10.2010, 00:50 |
дело в том, что компилятор по ссылке, реализован на линукс. а в линукс, реализация функции rand() сильно отличается от тех, что реализованы в компиляторах для вендаус. а по хорошему, лучше использовать http://www.boost.org/doc/libs/1_44_0/libs/random/index.html. |
| Автор: awesome 20.10.2010, 01:08 |
| boostcoder, можно ли добиться корректной работы без применения этой библиотеки? |
| Автор: Crafty 20.10.2010, 02:25 | ||
Можно сделать что-то наподобие этого
Но лучше использовать какую-нибудь стороннюю библиотеку. |
| Автор: awesome 20.10.2010, 02:33 |
| Crafty, спасибо за помощь! |
| Автор: awesome 20.10.2010, 03:30 | ||
так, теперь все работает нормально, но если попытаться вывести сгенерированное несколько раз, то получается одинаковое число.
|
| Автор: Crafty 20.10.2010, 04:14 | ||||
То есть srand нужно вызывать только один раз, так как семя( наше time(NULL) ) у нас не меняется за столь короткое время. Тут подробней http://www.cplusplus.com/reference/clibrary/cstdlib/srand/
Тут подробней http://www.cplusplus.com/reference/clibrary/cstdlib/srand/ |
| Автор: awesome 20.10.2010, 04:21 |
| Crafty, еще раз спасибо большое! |