Как установить семена RNG в C ++?

0

Может ли кто-нибудь сказать мне, как создавать одинаковые значения случайного числа в C++?

Я знаю в Matlab, что могу сделать следующее:

rng(1)
a= randi(10,1,10)

Ответ будет таким же. Например

5     8     1     4     2     1     2     4     4     6

5     8     1     4     2     1     2     4     4     6

5     8     1     4     2     1     2     4     4     6

Это даст мне одинаковые значения во все времена, если семя не будет сброшено.

Но я не знаю, как это сделать в C++.

Теги:
visual-c++
random
c++-cli

3 ответа

0
Лучший ответ

Две разные инициализации с одним и тем же семенем будут генерировать одну и ту же последовательность результатов в последующих вызовах rand.

Если seed установлен в 1, генератор повторно инициализируется до его начального значения и выдает те же значения, что и перед любым вызовом rand или srand.

#include <stdlib.h>     /* srand, rand */
#include <time.h> 

int random = rand();
int next = rand();
int next2 = rand();

//another sequence
srand (time(NULL));
int 2random = rand();
int 2next = rand();
int 2next2 = rand();

//will repeat the first sequence
srand (1);
int 3random = rand();
int 3next = rand();
int 3next2 = rand();
  • 0
    и какую библиотеку мне нужно использовать
  • 0
    @ user2851655 смотрите обновление
Показать ещё 1 комментарий
0

Создайте экземпляр std::random_device, который предоставляет, возможно, недетерминированные равномерные случайные числа, и используйте его для засева произвольного числа по вашему выбору:

std::random_device rd;
std::default_random_engine gen(rd());

Если вы хотите знать, как семять функцию библиотеки rand, вам нужно использовать std::srand. Он обычно засевается текущим временем, std::time(0).

Конечно, нет причин, по которым вы не могли бы использовать std::random_device для семян rand.

0

Вы ищете функцию srand, которая семена генератора случайных чисел? Он часто используется для посева с текущим временем, но вы можете использовать его для посева с фиксированным значением, если хотите.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню