|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.07.2017, 09:51 | #1 | |
Форумчанин
Регистрация: 13.05.2017
Сообщений: 100
|
генератор случайных чисел
Хочу разобраться в генераторе случайных чисел на Си. Как я понял для этого используются srand и rand, но, к сожалению, я не до конца понял как они работают: если с rand впринципе все понятно, то вот с srand не оч.
Читал, что srand надо записывать так: Цитата:
Кстати, еще читал, что в math.h есть ф-ция random, но не нашел ее описания на русском - не подскажете? |
|
10.07.2017, 09:59 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
во-первых, это генератор не случайных чисел, это генератор ПСЕВДОСЛУЧАЙНЫХ чисел.
во-вторых, генератор построен на математической последовательности. Последовательность нужно начать. Вот для иницилизации последовательности и используется функция srand() если ей подать число 1 в качестве параметра - по получите ОДНУ строго определённую последовательности чисел. если ей подать число 2 в качестве параметра - по получите ДРУГУЮ строго определённую последовательности чисел. если ей подать число 3 в качестве параметра - по получите ДРУГУЮ строго определённую последовательности чисел. и т.д. вот, чтобы последовательность была заранее неизвестной, берём текущее для иницилизации - значение милисекунд из системных часов. Вот и всё. смотрите в своём языке/компиляторе. Вполне возможно, что функция srand() в вашем случае запускается БЕЗ параметров (и уже она сама берёт нужное число из системных часов для иницилизации). |
10.07.2017, 10:02 | #3 |
Форумчанин
Регистрация: 13.05.2017
Сообщений: 100
|
нет, пробовал - выдает одно и тоже число.
|
10.07.2017, 10:04 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
10.07.2017, 10:08 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
вот, попробуйте:
Код:
проверить работу можно онлайн на http://ideone.com- ТЫЦ |
10.07.2017, 10:27 | #6 | ||
Форумчанин
Регистрация: 13.05.2017
Сообщений: 100
|
Цитата:
Цитата:
Код:
|
||
10.07.2017, 10:47 | #8 |
Форумчанин
Регистрация: 13.05.2017
Сообщений: 100
|
Это понятно. что работает - у меня тоже работает, но если компилятор запускать с флагом -Wall, то выдает предупреждение.
|
10.07.2017, 11:23 | #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.07.2017, 13:32 | #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 |