Я использую random_shuffle
в последовательности a
1000 раз. Я хочу, чтобы на каждом компьютере конечная последовательность была такой же. Это может показаться нежелательным, но все же я хочу достичь этого. Обеспечивает ли это srand(x)
?сгенерируйте такую же случайную перестановку на каждом компьютере
ответ
Существует два источника различий в результате случайного перетасовки: алгоритм для rand()
не указан, поэтому различные реализации производят разные последовательности чисел; и алгоритм для random_shuffle
не указан, поэтому, опять же, разные реализации дают разные результаты, даже с той же последовательностью псевдослучайных чисел.
Вы можете устранить первую проблему, используя любые генераторы случайных чисел в C++ 11; все они подробно указаны, в том числе для некоторых специализаций - требование для 10 000-го значения, которое является отличной помощью в отладке их реализации. Однако для перетасовки нет аналога. В частности, алгоритм для std::shuffle
не указан, поэтому он не даст воспроизводимых результатов. Вам придется писать свои собственные. Это не сложно (нигде не так сложно, как писать движок), просто сделайте небольшое исследование; есть много дискуссий, которые вы можете начать с этого.
Обычный алгоритм перетасовки - это [Fisher-Yates shuffle] (https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). – rossum
- 1. Создать ограниченную случайную перестановку списка
- 2. Как создать случайную перестановку массива?
- 3. Сформировать случайную перестановку элементов списка OCaml
- 4. Как генерировать случайную перестановку в Java
- 5. Создайте случайную перестановку 1..N в постоянном пространстве
- 6. Проект андроида не работает на каждом компьютере
- 7. Циклы тестов на перестановку
- 8. Специальные символы, отображаемые правильно на каждом компьютере
- 9. Программа, которая запускается на каждом компьютере
- 10. Параллельные запросы на такую же сессию django
- 11. Создать перестановку с той же автокорреляцией
- 12. Должны ли ссылки на DAO устанавливаться на каждом клиентском компьютере?
- 13. Создание системы учета, которая работает на каждом компьютере js
- 14. Как создать каждую перестановку набора символов в каждом порядке -Python
- 15. Как создать перестановку при каждом вызове функции или
- 16. NSMutableArray, имеющий такую же ссылку
- 17. C# - ListView Размер текста столбца не совпадает на каждом компьютере
- 18. Игнорируемые файлы из .gitignore различаются на каждом компьютере разработчиков
- 19. Применить же перестановку для каждой строки в Numpy массиве 2D
- 20. Возможно ли соединение с другим портом на каждом компьютере?
- 21. Как получить список компьютеров, которые работают на каждом компьютере?
- 22. ASPX Вход управления работают на каждом компьютере, кроме шахты
- 23. Android Extra Project Eclipse - NoClassDefFoundError- Не на каждом компьютере
- 24. Windows() Активировать работы на каждом компьютере, кроме одного
- 25. Измененный WPFToolkit и теперь он не работает на каждом компьютере
- 26. Как сделать работу с программой на каждом компьютере Windows?
- 27. Получите локальные учетные записи администратора на каждом компьютере в OU
- 28. Java: Является ли отражение каждый раз на каждом компьютере?
- 29. Услуги WCF на том же компьютере
- 30. тестирование клиент-сервера на том же компьютере
Почему вы используете случайное перетасовку, если хотите, чтобы результат всегда был одинаковым? –
Делает то же и случайное вместе? Будет интересно увидеть ответ :) – sami1592
Да, если вы выберете одно и то же семя, вы получите ту же последовательность. –