|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.02.2013, 14:20 | #1 |
Форумчанин
Регистрация: 26.06.2010
Сообщений: 168
|
функция rand()
вобщем мне нужно сгенерировать случайные числа
Код:
везде выдает одинаковые числа.... т.е. первая цифра 41 35 ... последние 128 132 217 мне так и нужно. только я вот думаю это может только на моем процесоре так выдает? или может на windows 8 уже будет не теже самые числа выдавать.... или может винда когда ни будь выйдет обновление и числа будут уже не теми |
04.02.2013, 14:24 | #2 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
rand() выдаёт по "таблице".
его никто не намерен менять.. тем более гейтцы. они лишь добавят новое а это задробят.. и в хейдерах не будет. Тем кого не устраивает стандартный пишут свой. ____ обычно он людей бесит тем, что это не фига не случайные числа.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
|
04.02.2013, 14:44 | #3 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
|
|
04.02.2013, 16:00 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
могу со своим замечанием "ткнуть пальцем в небо", ибо, вообще не понимаю, откуда возникло такое обсуждение..
а кто за Вас будет иницилизировать генератор случайных чисел случайным значением?!! (обычно берут милисекунды для этой цели) видел, что люди, пишущие на C/C++ делают это примерно так: Код:
|
04.02.2013, 16:04 | #5 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
|
|
04.02.2013, 16:48 | #6 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Цитата:
И согласен с вашим мнением, насчёт компилятора! Хотя, дать руку на отсечение, что не используется какая-то WinAPI-шная функция, и что её измененение не повлияет на "случайные" числа, я бы не стал! |
||
04.02.2013, 17:54 | #7 |
Пользователь
Регистрация: 02.02.2013
Сообщений: 44
|
Код:
как уже было выше сказано, числа идут по таблице, изменить их нельзя, можно начать считать долисекунды с 1970-го года, для этого и нужна команда srand(time(NULL)); |
04.02.2013, 20:11 | #8 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Если же проиницилизировать генератор случ.чисел временной отметкой - числа при каждом запуске будут разные. Это автору топика НЕ НАДО. Цитата:
|
||
04.02.2013, 21:49 | #9 | ||
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Цитата:
Что дело до формулы. То если пощупать справки, то можно понять, что rand() генерирует те же числа лишь для отладки программы. так что srand(1) не нужен в корень. srand() влияет на результат rand() сдвигая на шаг в таблице. поскольку time всегда даёт другое число, то на выходе мы типо видем рандомные числа.. но это не так. таблица рандомовых чисел за ранее просчитана и её длина от 0 до RAND_MAX. примерно 65356 / 2. __________ RAND_MAX _________ Цитата:
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Последний раз редактировалось Perchik71; 04.02.2013 в 22:17. |
||
04.02.2013, 23:44 | #10 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Я однажды потрошил порт libstdc++, интересно было поглазеть на исходники. Хотите узнать, какая там была формула? Код:
Каждая из них якобы обладает особыми свойствами: дают очень хорошее покрытие случайности по диапазону. Если для компьютерной игрушки - этой формулы за глаза хватит. Я кстати, с виндузятным рандомом тестировал. Они показали удивительно схожие результаты) Если если для гурманов (с блэкджеком и шлюхами), то можно использовать мерсене: http://ru.wikipedia.org/wiki/%C2%E8%...F1%E5%ED%ED%E0 Он тоже позволяет самому задавать сид, и ещё кучу всяких настроек, вплоть до указания распределения по гаусу Последний раз редактировалось _Bers; 04.02.2013 в 23:47. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
rand | xamelion | Visual C++ | 7 | 11.01.2012 14:24 |
Функция rand | Mehanizator | Помощь студентам | 2 | 13.08.2011 14:02 |
функция генерации случайных чисел rand() в main | pufystyj | Общие вопросы C/C++ | 4 | 08.02.2011 21:09 |
с++ rand | Якъ | Помощь студентам | 4 | 10.11.2010 22:47 |
rand() ????? | Revenholm | Общие вопросы C/C++ | 7 | 25.04.2009 18:47 |