как получить случайное число в заданном диаппазоне? |
Здравствуйте, гость ( Вход | Регистрация )
как получить случайное число в заданном диаппазоне? |
Litkevich Yuriy |
2.3.2009, 17:42
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
В Си это дело определяется следующими вещами:
int rand(void) - генератор void srand(unsigned int) - стартовая точка RAND_MAX - конечная точка как задать конечную точку в рантайме? |
|
|
Tonal |
3.3.2009, 8:51
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Народ, вы чего! Идите в help/man/google и читайте про то, что такое rand и srand.
rand - генератор псевдослучайной последовательности от 0 до RAND_MAX Это значит, что он на основе некоторого текущего числа вычисляет следующее. При этом вычисленное число становится текущим. srand - явно устанавливает текущее. Т.е. код функция
будет всегда возвращать одно и тоже число, а уж последовательность srand(RAND_MAX)*srand(RAND_MAX)*srand(RAND_MAX) бессмысленна и не скомпилируется. Для получения сколько-нибудь случайной последовательности, srand нужно вызывать 1 раз где-нибудь в начале программы и инициализировать чем-нибудь б/м случайным - текущим временем, например. Ну или использовать более другие генераторы случайности. |
|
|
Текстовая версия | Сейчас: 16.1.2025, 0:48 |