Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/121: Рейтинг темы: голосов - 121, средняя оценка - 4.63
 Аватар для CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1

Rand() создает одинаковые числа

01.08.2014, 22:13. Показов 22292. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++ Скопировано
1
2
3
4
5
6
inline void Playing_card::set_random_suit()
{
    std::srand(time(NULL));
    suit_.val = rand() % (SPADES - CLUBS) + CLUBS;
    suit_.lexcast();
}
При создании нескольких объектов Playing_card, во всех созданных обьект val_ одинаковый? Почему? Скажите пожалуйста.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.08.2014, 22:13
Ответы с готовыми решениями:

Функция rand() в обоих случаях выбрасывает одинаковые числа
Почему в итоге всегда функция rand() в обоих случаях выбрасывает одинаковые числа, а выбрасывать начинает всегда с 6 . 6, потом идёт 5 . 5,...

Генератор случайных чисел rand() выдаёт одинаковые числа
Например, сделаем маленькую программу в которой будет переменная int chislo. Дальше будет так: chislo = rand() + 1 % 10; cout <<...

Rand: Во всех случаях генерируются одинаковые значения
Всем привет. Имею след. код: #include "stdafx.h" #include <iostream> #include <cstdlib> #include <ctime> class C { ...

7
Пес войны
 Аватар для NeonLost
111 / 88 / 22
Регистрация: 23.02.2012
Сообщений: 653
01.08.2014, 22:30
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
При создании нескольких объектов Playing_card, во всех созданных обьект val_ одинаковый? Почему? Скажите пожалуйста.
C++ Скопировано
1
std::srand(time(NULL));
нужно это делать 1 раз за всю программу, а лучше не пользоваться рандомками зависящами от времени, а то они в единицу времени одни и те же числа выдают...)
1
 Аватар для CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
01.08.2014, 22:39  [ТС]
NeonLost, а чем лучше тогда пользоваться?
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
01.08.2014, 22:44
http://www.cplusplus.com/reference/ctime/clock/

Для вашей карточной игры вполне подойдёт.
0
Пес войны
 Аватар для NeonLost
111 / 88 / 22
Регистрация: 23.02.2012
Сообщений: 653
01.08.2014, 22:51
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
NeonLost, а чем лучше тогда пользоваться?
ну я всегда так делаю
C++ Скопировано
1
2
3
4
5
6
7
8
9
int GetRndNumber()
{
    typedef boost::mt19937 RNGType;
    boost::random::random_device rd;
    RNGType rng(rd());
    boost::uniform_int<> one_to_one( 1, 10);
    boost::variate_generator< RNGType, boost::uniform_int<> >dice(rng, one_to_one);
    return dice();
}
правда теперь и без буста это можно сделать...)
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
02.08.2014, 10:23
Лучший ответ Сообщение было отмечено CHELOVEKPAUK как решение

Решение

NeonLost, интересный код, а можете прокомментить? а то че то ничего не понятно как работает

а еще можно вот так сделать
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
int random(int min, int max)
{
    static bool flag;
    if (!flag)
    {
        srand(time(NULL));
        flag = true;
    }
    return min + rand() % (max - min);
}
2
0 / 0 / 0
Регистрация: 19.11.2018
Сообщений: 7
18.06.2019, 00:27
C++ Скопировано
1
2
3
srand((unsigned)time(NULL));
srand((unsigned)rand());
int a = rand();
0
Just Do It!
 Аватар для XLAT
4144 / 2563 / 646
Регистрация: 23.09.2014
Сообщений: 8,253
Записей в блоге: 2
18.06.2019, 00:42
Цитата Сообщение от GetHelp Посмотреть сообщение
int random(int min, int max)
{ static bool flag;
if (!flag) {
srand(time(NULL));
flag = true;
}
return min + rand() % (max - min);
}
лучше так:
C++ Скопировано
1
2
3
4
5
struct srandom{srandom(){srand(time(NULL));}}orandom; /// разместить можно в любом cpp файле.
 
int random(int min, int max)
{   return min + rand() % (max - min);
}
все тож самое, только без постоянной проверки flag
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.06.2019, 00:42
Помогаю со студенческими работами здесь

Функция rand генерирует одинаковые последовательности чисел
Всем привет, возникла проблема при написании генератора паролей. Суть - этот великий рандомайзер пишет одно и тоже(написал длину пароля...

Не работает rand (все время выдаются одинаковые значения)
Не могу понять, почему у меня rand постоянно выдает одинаковые значения. Вот сам код, хелп ми плиз: #include &lt;iostream&gt; ...

Rand() исключение числа
У меня есть код a = -2 + rand () %10; Мне нужно чтобы генерировало все числа от 2- до 10 , кроме 0 Пытался сделать вот так : a =...

Отрицательный числа в rand()
Как?

Rand() генерирует одни и те же числа
0100010010101010100011111101010101000010 щучу :p Всем привет, не найдя на форуме ответа, решил сделать тему, удалю как получу ответ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
Метод с двумя буферами (или double buffering) или ping-pong buffering
Hrethgir 02.04.2025
Из ответов LM модели. Метод, который предполагает использование двух массивов для хранения промежуточных результатов сложения векторов, обычно применяется в сценариях, где необходимо минимизировать. . .
На любовном киберфронте
Alexander-7 01.04.2025
Недавно на одном малоизвестном сайте знакомств мною заинтересовалась девушка: «Текст немного странный. Но, судя по адресу почты, иностранка», – подумал я. Поколебавшись пару суток, я ответил ей:. . .
Как работает Node.js изнутри
run.dev 29.03.2025
Node. js изменил подход к разработке веб-приложений, позволив использовать JavaScript не только на стороне клиента, но и на сервере. Созданный в 2009 году Райаном Далем, этот открытый,. . .
Моки в Python: Mock Object Library
py-thonny 29.03.2025
Тестирование кода требует особого подхода, когда речь идёт о компонентах, взаимодействующих с внешним миром. Мы часто сталкиваемся с непредсказуемостью HTTP-запросов, чтением данных из базы или. . .
JavaScript: Управление памятью и улучшение производительности
run.dev 29.03.2025
В отличие от низкоуровневых языков программирования, JavaScript не требует ручного выделения и освобождения памяти. Здесь работает автоматический сборщик мусора, который определяет, какие объекты. . .
Мультитенантная архитектура со SpringBoot и PostgreSQL
ArchitectMsa 29.03.2025
SaaS-приложения редко обслуживают одного клиента и обычно они должны поддерживать множество организаций, каждая из которых работает в своём изолированном пространстве. Мультитенантная архитектура. . .
std::span в C++: Производительность и лучшие практики
NullReferenced 28.03.2025
std::span — одно из самых недооценённых нововведений стандарта C++20, которое радикально меняет подход к работе с непрерывными последовательностями данных. По сути, это невладеющее представление. . .
Многопоточность в C#: Threadpool
UnmanagedCoder 28.03.2025
Пул потоков в C# — это коллекция заранее созданных и готовых к использованию потоков, которые находятся в распоряжении приложения. Вместо того чтобы создавать и уничтожать потоки для каждой небольшой. . .
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер