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

    #include
    #include
    using namespace std

    int main () {
    ?
    }

Ответы 5

  • Это не генератор случайных чисел, это случайная перетасовка чисел в массиве, со времен C для генерации случайных чисел использовалось время со старта машины либо процесса, точно не помню, но используется функция rand() из библиотеки cstdlib, так что это даже не альтернативное решение, а неправильный ответ по просту.
  • Хочу ещё добавить, что решение крайне не эффективное, что бы увеличить диапазон чисел, необходимо увеличить размер массива, то есть хранить в единый момент времени в памяти коллекцию всех возможных вариантов.
    • Автор:

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

      mata
    • 6 лет назад
    • 0
  • И да, я знаю что это не совсем то, но писать истенно свой ГПСЧ уникальных чисел, не то что бы очень сложно, но как минимум хотелось бы адекватных требований, а не то что описал ТС в задании, ну и времени, а мне истенно лень это писать, бесплатно, причем есть ещё много подходов к решению задания, опять же нужны нормальные requirements.
    • Автор:

      trey
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years