![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
от compiler |
![]()
Сообщение
#1
|
Гость ![]() |
Добрый день!
собственно вопрос в заголовке видел у некого Vort-а реализованно так #include <stdlib.h> #include <time.h> ... srand((int)time(0)); ... одноко автор говорит, что списал это не вникая в подробности... а мне хотелось бы понять суть... итак имеим srand() с библиотеки stdlib, который инициализирует ГСЧ, однако чтоб он генерились при разных запусках программы разные числа необходим дополнительный параметр. для этого мы используем time из библ. time приводя его в тип int правильное ли это утверждение и какой параметр получает time? заранее благодарен. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Судя по содержимому документации:
Цитата void srand(unsigned seed); Отсюда плавно переходим к описанию time():Вызов srand(n) инициализирует ГСЧ таким образом, что генерируемая случайная последовательность определяется значением аргумента n. <...> Чтобы получить непредсказуемую случайную последовательность, следует установить seed равным текущему значению быстро изменяющейся величины, такой как время. Цитата time_t time(time_t *thetime); Возвращает текущую дату и время как число секунд, прошедших с 00:00:00, 1 января 1970 по Гринвичу. time_t *thetime - необязательный указатель на переменную типа time_t, в которую записывается текущая дата/время (это же значение возвращается функцией time()). Игнорируется, если thetime = 0 А явное приведение типа используется для того, чтобы указать компилятору, что программист сознательно приводит тип к менее емкому (long -> int), понимает, что это может привести к потере данных, но в данном случае это программиста не особо волнует, и Warning можно не выдавать ![]() |
![]() ![]() |
![]() |
Текстовая версия | 23.07.2025 11:01 |