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

Что делает функция srand? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не вызывается конструктор базового класса http://www.cyberforum.ru/cpp-beginners/thread157378.html
Доброго времени суток. У меня проблема:в производном классе не вызывается конструктор базового класса. Думаю описывать класс не стоит, т.к. он простейший. #include<iostream> #include<cstring> using namespace std; class String { protected:
C++ Заполнение массива числами от 1 до 25 без повторений #include <iostream> #include <ctime> using namespace std; int main() { const int ROW=5; const int COLUMN=5; int MAS; srand(time (NULL)); for (int i = 0; i < ROW; i++) http://www.cyberforum.ru/cpp-beginners/thread157355.html
C++ Адресная арифметика
Народ!!! Пожайлуста просвятите! Мне важно понять принцип хранения переменных различных типов данных в языках С++ и С#(например как в ячейках памяти будет храниться float a = 1234,33333)/ Зарание огромное спасибо
Изменение указателя - аргумента функции C++
Привет всем! Может я совсем тупой, но не могу понять почему не работает такой пример: #include <iostream> void func (char * ptr) { ptr = new char ; ptr = '1';
C++ STL std::set, std::pair, std::make_pair http://www.cyberforum.ru/cpp-beginners/thread157247.html
Я не знаю как описать тему в двух словах, поэтому не обращайте внимание на название темы. Собственно перейдем к нашим баранам: есть пользовательский класс (условно дерево): class tree { double age, height; std::string name; public: tree(std::string); bool operator == (tree); bool operator > (tree); bool operator < (tree);
C++ Как написать макрос - модуль числа... Помогите написать макрос на с++, возвращающий модуль числа... Добавлено через 4 минуты Нашёл.. подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,444
04.08.2010, 19:01     Что делает функция srand?
Owyn, насколько я понимаю, псевдослучайное число вычисляется по такому алгоритму.
Пусть С1 и С2 - некоторые константы, seed - зерно псевдослучайной последовательности. Тогда тело функции rand() могло бы выглядеть так:
C
1
2
3
4
5
int rand()
{
    seed = seed*C1 + C2;
    return seed;
}
Переменная seed имеет фиксированное значение. Значит, при каждом запуске программы будет генерироваться одна и та же последовательность псевдослучайных чисел.
А srand позволяет инициализировать зерно seed системным временем. Т.е., если ты запишешь в начале программы srand(time(NULL)) (инициализация зерна текущим временем), то можно считать, что при каждом запуске у тебя будет генерироваться уникальная последовательность

Добавлено через 11 минут
Нашел на просторах Интернета:
Генератор ANSI-C был опубликован комиссией как 'пример'. Мы его тоже приводим, но как 'не рекомендованный' для серьезных приложений.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* (в модуле stdlib.h) */
#define RAND_MAX 32767
 
/* "пример" от комитета ANSI-C */
unsigned long next=1;
 
int rand(void) {
 next=next*1103515245+12345;
 return((unsigned int)(next/65536)%32768);
}
 
void srand(unsigned int seed) {
 next=seed;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru