В петле достаточно установить семя один раз, чтобы получить последовательность случайных чисел. Как функция rand генерирует множество случайных чисел на основе только одного семени?Как rand() генерирует последовательность случайных чисел из одного семени?
ответ
Все, что вам нужно - это алгоритм превращения одного числа в два числа. Один номер становится вашим следующим выходом, другой становится вашим следующим семенем. Такие алгоритмы довольно просты. Например, вы можете умножить число на два разных простых числа, а затем уменьшить каждый модем 65536. Это будет производить два выхода с одного входа.
Альтернативный способ еще проще:
1) переставляют семян путем умножения его на один номер и добавление второго числа. (Например, seed = seed * 214013 + 2531011;
.)
2) Выведите только часть нового семени. (Например, return (seed >> 16) &0x7ffff;
.)
На самом деле это номера Pseudorandom, цифры кажутся случайными, но не являются детерминированными, поскольку они могут быть предсказаны алгоритмом. Поистине случайное число невозможно предсказать. Использование одного и того же семени будет производить одну и ту же последовательность. Стандарт определяет и алгоритм, но используемый actual algorithm будет зависеть от реализации.
- 1. Создание случайных чисел: обновление семени
- 2. Как удалить последовательность случайных чисел
- 3. Сохранение текущего семени в последовательности случайных чисел Фортрана
- 4. Является ли последовательность случайных чисел, порожденных rand в C, гарантирована всегда одинаковой для одного и того же семени?
- 5. MATLAB: Сгенерировать последовательность случайных чисел
- 6. Правильный способ генерации случайных чисел
- 7. Как этот код генерирует 100 случайных чисел
- 8. Генерация случайных чисел с использованием rand()
- 9. Функция rand() не генерирует достаточно случайных
- 10. генерирует большое количество случайных чисел
- 11. генерирует много случайных чисел в бит времени
- 12. Последовательность случайных чисел без повторений
- 13. Как получить последовательность чисел назад после генерации случайных чисел
- 14. Почему генератор случайных чисел генерирует только ноль
- 15. Использование rand для генерации случайных чисел
- 16. Генератор случайных чисел (rand) не является случайным?
- 17. Как сгенерировать повторяемую последовательность случайных чисел?
- 18. Номер случайных чисел
- 19. Генератор случайных чисел для iOS и Android
- 20. Как получить генератор случайных чисел?
- 21. Создание последовательности псевдослучайных чисел на основе семени
- 22. C++ генерирует несколько случайных чисел без цикла
- 23. случайных чисел: 0 или 1
- 24. Генератор случайных чисел - не генерирует случайное число каждый раз
- 25. генерации случайных чисел C++
- 26. Как этот код генерирует правильную последовательность символов?
- 27. C# генератор случайных чисел
- 28. Наблюдаемая последовательность случайных чисел в диапазоне
- 29. Создайте список случайных символов при сохранении семени.
- 30. Попытка создать уникальную последовательность случайных чисел на итерацию
связанный: [Как работает rand()? Есть ли определенные тенденции? Есть ли что-то лучшее в использовании?] (Http://stackoverflow.com/questions/3539398/how-does-rand-work-does-it-have-certain-tendencies-is-there-something-better) – user4581301
Как сделать Фибоначчи генерируют множество чисел, начиная с 1? Существует простое правило, которое ведет от одного элемента в последовательности к следующему; и в случае «rand» он таков, что числа * выглядят * довольно случайными (как для случайного наблюдателя, так и в соответствии с некоторыми базовыми статистическими тестами). –
вы всегда получаете последовательность из rngs и на самом деле это важная особенность rngs, что они всегда производят одну и ту же последовательность с тем же семенем. В конце концов они несут случайное – user463035818