![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |
Форумчанин
Регистрация: 13.05.2017
Сообщений: 100
|
![]()
Хочу разобраться в генераторе случайных чисел на Си. Как я понял для этого используются srand и rand, но, к сожалению, я не до конца понял как они работают: если с rand впринципе все понятно, то вот с srand не оч.
Читал, что srand надо записывать так: Цитата:
Кстати, еще читал, что в math.h есть ф-ция random, но не нашел ее описания на русском - не подскажете? |
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
во-первых, это генератор не случайных чисел, это генератор ПСЕВДОСЛУЧАЙНЫХ чисел.
во-вторых, генератор построен на математической последовательности. Последовательность нужно начать. Вот для иницилизации последовательности и используется функция srand() если ей подать число 1 в качестве параметра - по получите ОДНУ строго определённую последовательности чисел. если ей подать число 2 в качестве параметра - по получите ДРУГУЮ строго определённую последовательности чисел. если ей подать число 3 в качестве параметра - по получите ДРУГУЮ строго определённую последовательности чисел. и т.д. вот, чтобы последовательность была заранее неизвестной, берём текущее для иницилизации - значение милисекунд из системных часов. Вот и всё. смотрите в своём языке/компиляторе. Вполне возможно, что функция srand() в вашем случае запускается БЕЗ параметров (и уже она сама берёт нужное число из системных часов для иницилизации). |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 13.05.2017
Сообщений: 100
|
![]()
нет, пробовал - выдает одно и тоже число.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
вот, попробуйте:
Код:
проверить работу можно онлайн на http://ideone.com- ТЫЦ |
![]() |
![]() |
![]() |
#6 | ||
Форумчанин
Регистрация: 13.05.2017
Сообщений: 100
|
![]() Цитата:
Цитата:
Код:
|
||
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 13.05.2017
Сообщений: 100
|
![]()
Это понятно. что работает - у меня тоже работает, но если компилятор запускать с флагом -Wall, то выдает предупреждение.
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
так. значит, всё таки, работает.
Это уже хорошо. ![]() ну, предупреждение, это не ошибка. А что за предупреждение? (я язык С не знаю, поэтому я Вам вряд ли помогу. Но тут на форуме есть специалисты, возможно, они Вам подскажут, что это за предупреждение и надо ли на него обращаться внимание...) и, кстати, если предупреждение вида "warning: implicit declaration of function 'srand' is invalid in C99" - то, насколько я понял, просто нужно правильно подключить библиотеки, в C99 перенесли некоторые функции в другие библиотеки. Последний раз редактировалось Serge_Bliznykov; 10.07.2017 в 11:27. |
![]() |
![]() |
![]() |
#10 | |
Форумчанин
Регистрация: 13.05.2017
Сообщений: 100
|
![]()
предупреждение типа:
Цитата:
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
генератор случайных чисел | lazunit | Помощь студентам | 1 | 20.04.2013 10:05 |
генератор случайных чисел | Nicolas_46 | Microsoft Office Excel | 9 | 03.12.2012 14:35 |
Генератор случайных чисел | Evgenii(Евгений) | Помощь студентам | 6 | 23.01.2011 22:41 |
Генератор случайных чисел | Костян Пират | Общие вопросы Delphi | 8 | 23.01.2011 22:08 |
генератор случайных чисел на С++ | ANTI | Общие вопросы C/C++ | 20 | 12.04.2009 13:02 |