Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 311, средняя оценка - 4.65
Syltan
181 / 7 / 0
Регистрация: 27.08.2009
Сообщений: 868
#1

srand(time(0)) - C++

05.10.2009, 21:22. Просмотров 42730. Ответов 9
Метки нет (Все метки)

Тут встретил такое выражение. Вы не скажете, что оно даёт, и как расшифровать этот код

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <time.h>
using namespace std;
 
 
int main(){
    int a;
    srand(time(0));
    a=rand();
    cout<<a;
    cin.get();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2009, 21:22     srand(time(0))
Посмотрите здесь:

Std::sort, lambda-выражения, time(NULL) и srand() - C++
#include &lt;algorithm&gt; #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;time.h&gt; using namespace std; int main() { int...

Как сделать подбор рандомный разных чисел (srand (time(0) не помогает)? - C++
Здравствуйте, уважаемые программиты, не могли бы вы мне помочь? Дело в том, что мне нужно сделать генератор рандомных чисел. Я уже...

Генерация случайных чисел с использованием srand и библиотеки time может выдавать одинаковые числа, если... - C++
... если интервал случайных чисел, из которых идет отбор больше требуемого кол-ва случайных чисел? Например: есть интервал (0-2000),...

Srand - C++
Нужно сделать так чтобы начальное значение Srand было не от времени а от тактовой частоты процессора, подскажите как сделать

Srand - C++
есть кусок кода: srand(time(NULL)); for (jeka = 0; jeka &lt; 100000; jeka++) { jora = rand() % 9; cout &lt;&lt; jora &lt;&lt; &quot; &quot;; ...

srand - C++
что значит строка? srand((unsigned)time(NULL);

Srand - C++
что делает srand? (наприме: srand(static_cast&lt;unsigned int&gt;(time(0))); )

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rififi
2338 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
05.10.2009, 21:25     srand(time(0)) #2
строки 2-3 - подключение необходимых заголовочных файлов
4 - lamer detected (:
7 - начало главной функции
9 - инициализация генератора псевдо-случайных чисел
10 - получаем очередное псевдо-случайное число
11 - вывод на экран
12 - ждать реакции пользователя, чтобы он не орал "а чё типа у меня сразу всё закрывается"
13 - алес.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
05.10.2009, 21:40     srand(time(0)) #3
между 12 и 13 строками не хватает:
return 0;
Syltan
181 / 7 / 0
Регистрация: 27.08.2009
Сообщений: 868
05.10.2009, 21:42  [ТС]     srand(time(0)) #4
C++
1
 srand(time(0));
Это место, можно подробнее?
srand - что это?
time - что это?
0 в тайме зачем он?
patriot2008
71 / 71 / 4
Регистрация: 04.12.2008
Сообщений: 463
05.10.2009, 22:06     srand(time(0)) #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
srand - Это инициализация генератора случайных чисел, time - возвращает текущее календарное время системы, в качестве аргумента она принимает указатель на переменную типа time_t, которой и будет присвоено календарное время. Также time можно вызывать и с нулевым указателем (как в даном случае)
Syltan
181 / 7 / 0
Регистрация: 27.08.2009
Сообщений: 868
05.10.2009, 22:21  [ТС]     srand(time(0)) #6
srand без тайма может быть объявлен?
time зависит как-то от сранда, или мранд с таймом должны быть обязательны.
0 - ещё раз можно уточнить,почему 0, а не 1, 5, или 10.
Код
time - возвращает текущее календарное время системы,
Уточнить можно?
patriot2008
71 / 71 / 4
Регистрация: 04.12.2008
Сообщений: 463
05.10.2009, 23:06     srand(time(0)) #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
void srand(unsigned seed) - устанавливает стартовую точку для последовательности, генерируемой функцией rand(). Используется, когда необходимо работать с различными последовательностями псевдослучайных чисел путем задания разных отправных точек (seed - начальное значение). Так понимаю, что в srand() можешь попробовать time не использовать.

0 - нулевой указатель,
Прототип функции выглядит так - time_t time(time_t* time);
Календарное время и возвращается функцией, и помещается в переданный аргумент, но можно передавать нулевой указатель (то есть 0 или null). 0 в даном случае не число, а нулевой указатель.
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
06.10.2009, 05:35     srand(time(0)) #8
Цитата Сообщение от Syltan
Уточнить можно?
количество секунд, прошедших с 00:00:00 1970 года, их можно преобразовывать в разные части времени с помощью остальных функций из time.h

если передать 1, 5 или 10, она будет пробовать по адресу 1, 5 или 10 записать количество секунд, и, так как эти адреса не дадут ничего записать, программа вывалится

Добавлено через 1 минуту
Цитата Сообщение от Syltan
time зависит как-то от сранда
нет
TarasGolovatyj
0 / 0 / 0
Регистрация: 11.05.2014
Сообщений: 6
12.06.2014, 23:56     srand(time(0)) #9
от було написано що srand -генератор випадкових значень

а скажіть будьласка чим від відрізняється від rand()%n-m
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2014, 20:58     srand(time(0))
Еще ссылки по теме:

srand не компилится - C++
void Client::InitializeRandSessionKey() { srand(time(NULL)); randSessionKey=rand()%100; } 1&gt;h:\wmf\wmf\wmf\main.cpp(25) :...

Функция srand() - C++
Доброе время суток, уважаемые программисты. Подскажите пожалуйста, сейчас пытаюсь реализовать игру блэк джек(очко, если по нашему). И вот...

rand, srand и т.д - C++
Дана целочисленная матрица A (N,M), в которой имеются ровно два одинаковых элемента. Найти индексы этих элементов. Вопрос: можно ли...

srand и rand - C++
Здравствуйте. Надо заполнить массив единицами и нулями. srand (time (NULL)); for (int i=0; i&lt;size; i++){ val=rand()%2; } ...

Использование функции srand() - C++
подскажите что не так #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;stdlib.h&gt; using namespace std; int main() { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
worldown
41 / 41 / 19
Регистрация: 22.06.2009
Сообщений: 154
21.06.2014, 20:58     srand(time(0)) #10
rand()%n-m (где %- ариф. операция остаток от деления) означает что случайное число будет меньше n.
пример. Пусть
int n = 100;
int m = 10;
rand() с генерировал 9865, 9865%100 = 65 далее 65 - 10 = 55;
Yandex
Объявления
21.06.2014, 20:58     srand(time(0))
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru