Предмет: Информатика, автор: RenwoKej123

Как сделать генератор случайных чисел без повторений на c++

#include
#include
using namespace std

int main () {
?
}

Ответы

Автор ответа: clinteastwood2
0
#include <iostream>
#include <numeric>
#include <array>
using namespace std;

int main()
{
    array<int, 10> mas;
    iota(mas.begin(), mas.end(), 0);
    random_shuffle(mas.begin(), mas.end());
    for (const auto &i : mas) cout << i << " ";
}

clinteastwood2: Ммм, с каких это пор функция rand() из библиотеки cstdlib является генератором случайных чисел? Начнем с того что она генирирует (псевдо) случайные машинно зависимые числа и тем более выхлоп этой функции не гарантирует что одинаковые числа не выпадут n кол-во раз подряд, ах да и последовательность всегда будет одинаковой. Раз уж и использовать С, то надо брать не rand() , а srand() и ещё тащить за собой ctime.
clinteastwood2: Если брать С++ (что и нужно ТС, читайте задание внимательнее), то там со стандарта С++11 есть свои ГПСЧ. Исходя из задания нигде не сказано о том что мне нужно задавать какой либо диапазон или ещё какие ограничения, тем более опять же по заданию, спрашивается как сделать свой генератор, а не использовать готовый, мой пример это минимальный, можно сказать, псевдослучайный рандомизаторю.
clinteastwood2: И да, я знаю что это не совсем то, но писать истенно свой ГПСЧ уникальных чисел, не то что бы очень сложно, но как минимум хотелось бы адекватных требований, а не то что описал ТС в задании, ну и времени, а мне истенно лень это писать, бесплатно, причем есть ещё много подходов к решению задания, опять же нужны нормальные requirements.
Похожие вопросы
Предмет: Математика, автор: csfgbbjjjjjjj