Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/35: Рейтинг темы: голосов - 35, средняя оценка - 4.80
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1

Не работает рандом

07.11.2015, 11:07. Показов 8225. Ответов 61

Студворк — интернет-сервис помощи студентам
Здравствуйте, я тут столкнулся с проблемой, хотел написать функцию рандома от x до y, x и y передаются как параметры в функцию, так вот, рандом выдает всё время одно и тоже.
Вот сама функция, она почти целиком взята с MSDN:
C++
1
2
3
4
5
6
int Core::Chance( int x, int y ) {
    random_device rd;
    mt19937 gen( rd() );
    uniform_int_distribution<> dist( x, y );
    return dist( gen );
}
Пробовал даже старым способом через
C++
1
2
srand( time( NULL ) );
int z = rand() % x + y;
Просто выдает число, равное y.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.11.2015, 11:07
Ответы с готовыми решениями:

Почему не работает рандом?
Доброго времени суток господа, проблема моя заключается в том, что при попытке сгенерировать рандомное число для знака генерируется одно и...

Массив , не правильно работает рандом
У меня есть две функции одна рандомно заполняет масив. а другая уже должна работать с этим масивом. Но почемуто только 1 значения...

Связный список. Не работает тайпдэф и не видит рандом()
Всем привет. Компилятор отмечает строчку typedef enum { false, true } bool; пишет: требуется индификатор&quot; Кто подскажет, о каком...

61
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
07.11.2015, 15:20
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от zss Посмотреть сообщение
gru74ik, А почему Вас не устроил стандартный способ получения из MS примера
zss, а потому что я хочу юзать новый рэндом из C++11.
0
Модератор
Эксперт С++
 Аватар для zss
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,281
07.11.2015, 15:22
gru74ik, Пардон, я хотел задать вопрос ТС, т.е. makfak
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
07.11.2015, 15:43
Цитата Сообщение от gru74ik Посмотреть сообщение
Можно, конечно, немного улучшить код,
Или даже так:
Some.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef SOME_H
#define SOME_H
 
#include <random>
 
typedef int Item;
typedef std::uniform_int_distribution<Item> uniform_dist;
 
class Some
{
public:
    template <typename T>
    int my_randomizer(Item fromNum, Item toNum, T & generator)
    {
        uniform_dist uid_in_range(fromNum, toNum);
        return uid_in_range(generator);
    }
};
 
#endif // SOME_H


main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <ctime>
#include "Some.h"
 
int main()
{
    std::mt19937 gen;
    gen.seed(time(0));
 
    Some figovina;
 
    const int LOOP_ENDS = 20;
    for (int i = 0; i < LOOP_ENDS; ++i)
        std::cout << "My random number: "
                  << figovina.my_randomizer(10, 99, gen)
                  << std::endl;
 
    return 0;
}


Добавлено через 18 минут
Придумал как сделать!
1
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
07.11.2015, 16:01
Лучший ответ Сообщение было отмечено GbaLog- как решение

Решение

Вот оно, решение:

Some.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef SOME_H
#define SOME_H
 
#include <random>
#include <ctime>
 
typedef int Item;
typedef std::uniform_int_distribution<Item> uniform_dist;
typedef std::mt19937 gen_type;
 
class Some
{
private:
    gen_type m_generator;
    bool is_not_initialized;
    void initialize();
 
public:
    Some();
    int my_randomizer(Item fromNum, Item toNum);
};
 
#endif // SOME_H


Some.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "Some.h"
Some::Some()
{
    is_not_initialized = true;
}
 
void Some::initialize()
{
    if (is_not_initialized)
    {
        m_generator.seed(time(0));
        is_not_initialized = false;
    }
}
 
int Some::my_randomizer(Item fromNum, Item toNum)
{
    initialize();
    uniform_dist uid_in_range(fromNum, toNum);
    return uid_in_range(m_generator);
}


main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include "Some.h"
 
int main()
{
    Some figovina;
 
    const int LOOP_ENDS = 20;
    for (int i = 0; i < LOOP_ENDS; ++i)
        std::cout << "My random number: "
                  << figovina.my_randomizer(10, 99)
                  << std::endl;
 
    return 0;
}
Миниатюры
Не работает рандом  
1
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
07.11.2015, 17:21  [ТС]

Не по теме:

gru74ik, Эх, вот везёт всем, а у меня QtCreator не пашет. :(



Добавлено через 37 секунд
zss, Потому что я хочу использовать библу <random>
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
07.11.2015, 17:31
Цитата Сообщение от makfak Посмотреть сообщение
Эх, вот везёт всем, а у меня QtCreator не пашет.
Как это "не пашет"? Почему?
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
07.11.2015, 17:38  [ТС]
gru74ik, Да кто же его знает, он даже ошибки не выдает. Я тему даже в разделе Qt создавал, но там мне ничего толком объяснить не смогли.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
07.11.2015, 17:48
Цитата Сообщение от makfak Посмотреть сообщение
ничего толком объяснить не смогли
Ну как же, возможные варианты назвали:
Цитата Сообщение от yarko
а) Кривой дистриб винды
б) Кривой инсталятор винды.
в) Скачан не подходящий сетапник Qt
хз что еще может быть. У меня хрюшка Reanimator Extreme Edition 2007г. сборки, Qt 5.4 и все работает
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
07.11.2015, 17:52  [ТС]
gru74ik, Ну он как бы завуалировано сказал
Переустанови винду
А у меня слишком много файлов, и их некуда кинуть( 1 флешка, диска нет, съемного HDD нет ), поэтому переустановка - так себе идея, установщик QtCreator там 1 единственный, онлайн.

Добавлено через 32 секунды
Хотя погодите, а ведь можно создать другой раздел на диске и на него все файлы кинуть?
0
 Аватар для Leencore
3 / 3 / 2
Регистрация: 03.11.2015
Сообщений: 18
07.11.2015, 18:00
не знаю как у вас, а у нас в Delphi нужно прописывать Randomize, тогда будет правильно работать, а без этого одно значение постоянно...

Добавлено через 3 минуты
Randomize !!!
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
07.11.2015, 18:02  [ТС]
Leencore, А у нас не нужно.

Не по теме:

Как вы на форуме по C++ оказались?O_o

0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
07.11.2015, 18:02
Цитата Сообщение от makfak Посмотреть сообщение
Хотя погодите, а ведь можно создать другой раздел на диске и на него все файлы кинуть?
угу
0
 Аватар для Leencore
3 / 3 / 2
Регистрация: 03.11.2015
Сообщений: 18
07.11.2015, 18:05
в основном в делфе кодю, но и другими языками не гнушаюсь, изучаю так сказать
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
07.11.2015, 18:11
Цитата Сообщение от Leencore Посмотреть сообщение
а у нас в Delphi нужно
А у нас в квартире газ. Самому-то не смешно? Сравнили тёплое с мягким. Где Delphi и где C++. Разные языки, разные подходы.
Очень похоже на неудачный вброс. Ну или желание хоть как-то выпендриться. Это ничего, тут у многих это случается (я и сам грешен иногда), но как-то элегантнее надо, тоньше чутка.

Добавлено через 4 минуты
Leencore, тут даже в рамках одного языка такие чудеса случаются - разные библиотеки подключи, и вот тебе уже тот же С++, но изменённый до неузнаваемости (особенно, пока мало с библиотекой знаком). А Вы про другой язык программирования речь завели! Ваш дельфийский randomize к нашему плюсовому рэндому никаким боком не подойдёт же.
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
07.11.2015, 18:11  [ТС]
gru74ik, Ну я тут полазил на сайте Qt, там оказались оффлайн инсталяторы, сейчас скачаю 1, если не пойдёт, тогда уже переустановлю.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
07.11.2015, 18:16
makfak, вот тут ещё посмотри.

Добавлено через 1 минуту

Не по теме:

makfak, а ты, наверное, там и смотрел. Вот я лоллисимо :D

0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
07.11.2015, 19:31  [ТС]
gru74ik, Всё, теперь только переустановка, думаю 7-ку поставить, правда оперативки маловато, но попытка не пытка.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
07.11.2015, 20:54
Цитата Сообщение от makfak Посмотреть сообщение
думаю 7-ку поставить
Дело хорошее.

Цитата Сообщение от makfak Посмотреть сообщение
оперативки маловато,
Сколько?
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
07.11.2015, 21:49  [ТС]
gru74ik,
Сколько?
512, но когда мне достался этот ноут, там стояла 7-ка и довольно шустро работала, но я её переставил, зачем я уже и не помню.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
07.11.2015, 22:06
Цитата Сообщение от makfak Посмотреть сообщение
512
Тогда, может какую-нибудь ОС на ядре GNU/Linux? Например, Ubuntu?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.11.2015, 22:06

Не верно работает рандом
Нужно просто вывсти матрицу в RichEdit. Оно генерирует всё верно. Но только 1 число всё время. Дописал srand(time(NULL)); и описал...

как работает рандом?
как работает рандом? допусти тут диапозон огромный.а он выводит числа почти одинаковые 18908 18934 18954 18977 то есть они почти не...

Рандом с появлением групбоксов, рандом с расположением ответов в программе тестирования
Дали задание сделать тест с рандом выдачей вопросов(групбокс) и рандом расположения ответов(радиобаттон), вопросы будут находится в самой...

Рандом в пайтон (аппаратный рандом для генерации паролей)
суть такова есть такой скрипт на питоне wavBuf = dwParam1.contents if wavBuf.dwBytesRecorded &gt; 0 : bits =...

Рандом на javascript, не могу понять что не работает
Здравствуйте форумчане, нежна помощь в js, задание следующие: создать рандом, задаю начало промежутка и конец промежутка, так же необходимо...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru