Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406

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

27.04.2012, 15:00. Показов 2803. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
почему на кажджой итерации rand() выдает одно и тоже значение ?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
srand((unsigned)time(NULL));
        vector<const string> var(4);
        var[0] = "Integer";
        var[1] = "Float";
        var[2] = "String";
        var[3] = "Date";
        int type_num ;
        string rands;
        for(int i = 0; i < col - 1; i++){
            rands = rand_str(max);
            type_num = rand() % 4;
            cout<<rands<<" "<<var[type_num]<<"; ";      
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.04.2012, 15:00
Ответы с готовыми решениями:

Случайный и не случайный вывод чисел в одномерном массиве
Задача: Написать программу по обработке одномерных массивов. Размеры массивов вводить с клавиатуры. В консольном приложении предусмотреть...

Вывести случайный совет из массива с помощью Rand
namespace ConsoleApplication5 { class Program { static void Main(string args) { string str...

VS C++ Win32 , rand() как получить случайный вывод , введенных чисел
VS C++ Win32 , rand() как получить случайный вывод , введенных чисел Здраствуйте мне нужен стандартный пример , зачем чтоб больше...

5
17 / 13 / 6
Регистрация: 25.12.2010
Сообщений: 91
27.04.2012, 15:25
это значит, что одна твоя итерация быстрее делается,чем за одну секунду
вот так попробуй

C++
1
srand (time(0)|clock());
0
Почетный модератор
 Аватар для Humanoid
11557 / 4352 / 452
Регистрация: 12.06.2008
Сообщений: 12,454
27.04.2012, 15:26
Возможно, внутри rand_str() вызывается srand()
1
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
27.04.2012, 15:32  [ТС]
Цитата Сообщение от Humanoid Посмотреть сообщение
Возможно, внутри rand_str() вызывается srand()
Вы оказались правы!
интересно, чем второй вызов помешал?
0
Почетный модератор
 Аватар для Humanoid
11557 / 4352 / 452
Регистрация: 12.06.2008
Сообщений: 12,454
27.04.2012, 15:58
Цитата Сообщение от 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() должен вызываться только один раз в программе.
1
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
27.04.2012, 16:11  [ТС]
Понятно, разобрался!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.04.2012, 16:11
Помогаю со студенческими работами здесь

Подскажите, как сделать случайный выбор и случайный выбор ответов?
подскажите как сделать случайный выбор вопросов и случайны выбор ответов var questions = , , , , , , ,

Поменять в матрице случайный элемент в первой строке и случайный элемент в последней строке
Пользователь вводит массив 3 строки 4 столбца. Программа меняет местами случайный элемент в первой строке и случайный элемент в последней...

Случайный id из бд
Доброе время суток, подскажите как получить случайный id из таблицы. Альтернативу (SELECT id FROM users ORDER BY RAND() LIMIT 1); ...

rand()%(-20)%(20);
Нужно сорт случ числа от -20 до 20 Делаю так rand()%(-20)%(20); получаю числа от 0 до 20, а мне нужно от -20 ;

Rand()
metka: r1=rand()%2; r2=rand()%2; if(r1==a &amp;&amp; r2==b)goto metka; else arr=='O'; Собсно-это кусок кода...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru