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

rand() не случайный - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удалить из последовательности первый по порядку элемент, наиболее близкий по значению к среднему арифметическому http://www.cyberforum.ru/cpp-beginners/thread560115.html
Помогите пожалуйста составить программу: Даны целые числа a1, ..., an. Удалить из последовательности первый по порядку элемент, наиболее близкий по значению к среднему арифметическому чисел последовательности. Тема: Одномерные массивы
C++ рогалики, изображение в консоли здравствуйте, решил попробовать написать простую игру, простенький рогалик. Столкнулся с двумя проблемами: при перерисовки консоли мигает консоль (использую полную очистку консоли через system("cls"); и функцию Sleep(); ), и вторая проблема - не умею пользоваться хуками, а опрашивать клавиши при помощи функции GetAsyncKeyState(); немного неприятно, почему -то кажется что с хуками было бы... http://www.cyberforum.ru/cpp-beginners/thread560104.html
Ввод и сохранение данных вектора C++
эсть програма но нужно добавить несколько функцый помогите кому не сложно #include "stdafx.h" #include <iostream> #include <algorithm> #include <vector> using namespace std; vector <int> bable (vector <int> & v) {
C++ Вывести журнал успеваемости студентов группы в алфавитном порядке
Нужно написать код для решения следующей задачи Имеются сведения об успеваемости студентов факультета, который включают фамилию и инициалы студента, номер группы и оценки по m предметам.Студент считается среднестатистическим по k-ому предмету, если его оценка наиболее близка к средней оценке группы студентов по данному предмету. Обеспечить ввод и хранение информации об успеваемости...
C++ Колода карт http://www.cyberforum.ru/cpp-beginners/thread560089.html
реализация колоды карт :wall:
C++ Считывание файла с пробелами. Подскажите, пожалуйста, как при считывание текстового файла сохранить пробелы между словами. Темы видел но так и не понял. подробнее

Показать сообщение отдельно
Humanoid
Почетный модератор
 Аватар для Humanoid
9699 / 3749 / 140
Регистрация: 12.06.2008
Сообщений: 11,302
27.04.2012, 15:58     rand() не случайный
Цитата Сообщение от Gabberr Посмотреть сообщение
интересно, чем второй вызов помешал?
rand() высчитывается по определённой формуле. И использует для этого внутреннюю переменную. Именно для этого вначале вызывается srand(), что бы эту переменную привести в непредсказуемое состояние, что бы после этого rand() были по-настоящему случайными.
Для srand() ты передаёшь текущее время... значит, если в течении 1 секунды ты несколько раз вызовишь
C++
1
2
3
4
5
6
srand(time(NULL));
cout << rand();
srand(time(NULL));
cout << rand();
srand(time(NULL));
cout << rand();
То rand() будет возвращать всё время одно и тоже значение.
srand() установит внутреннюю переменную в значение time()... первый вызов rand() на основе этого значения высчитает случайное значение и изменит эту переменную, что бы следующий rand() отличался и был бы случайным. Но в следующий раз мы опять вызываем srand() и опять эту внутреннюю переменную устанавливаем в тоже самое значение. Поэтому и следующий rand() будет рассчитывать случайное число на основе того же самого значения.

Во, сколько бреда понапиал
Проще говоря, srand() должен вызываться только один раз в программе.
 
Текущее время: 13:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru