Я хотел бы иметь функцию f (x), которая дает хорошие псевдослучайные числа в равномерном распределении по значению x. Я знаю линейные конгруэнтные генераторы, однако они работают в итерациях, то есть я предоставляю начальное семя, а затем получаю последовательность случайных значений один за другим. Это не то, что я хочу, потому что, если вы хотите получить, допустим, 200000-е число в последовательности, я должен вычислить числа 1 ... 199999. Мне нужна функция, которая задается одной простой формулой, которая использует основные операции, такие как + , *, mod и т. д. Я также знаю о хэш-функциях, но я не нашел того, что соответствует этим потребностям. Я мог бы придумать какую-то функцию самостоятельно, но я бы хотел использовать что-то, что было проверено, чтобы дать достойные псевдослучайные значения. Используется ли что-нибудь подобное?Что такое простая формула для последовательности без итераций случайных чисел?
ответ
Вы можете рассматривать мультипликативные конгруэнтные генераторы. Это линейные конгруэнции без аддитивной константы: X i + 1 = aX i% c для подходящих констант a и c. Расширение этого в течение нескольких итераций будет убедить вас, что X к = а к X % С, где X является вашим начальным значением. Это можно рассчитать по времени O (log (k)), используя fast modular exponentiation. Не нужно вычислять первые 199,999, чтобы получить значение 200 000 th, вы можете найти его в чем-то пропорциональном примерно 18 шагам.
На самом деле, для LCG с константой добавки он также работает. Существует статья Ф. Брауна «Генерация случайных чисел с произвольным шагом», Trans. Am. Nucl. Soc. (Ноябрь 1994 г.). Основываясь на этом документе, существует разумный LCG с достойным качеством и функцией log2 (N), используемой известным пакетом MCNP5 в Монте-Карло. Сообщение C++ здесь https://github.com/Iwan-Zotow/LCG-PLE63/. Дальнейшее развитие, если эта идея (RNG с логарифмическим пропуском) является довольно приличным семейством генераторов на http://www.pcg-random.org/
Вы можете использовать простой алгоритм шифрования, который может шифровать числа 1, 2, 3, ... Так как шифрование является обратимым , каждый номер входа будет иметь уникальный выход. 200000-й номер в вашей последовательности - encrypt(key, 200000)
. Используйте DES для 64-битных номеров, AES для 128-битных номеров, и вы можете катить свой собственный простой Feistel cipher для 32-битных или 16-разрядных номеров.
- 1. Простая программа для случайных чисел
- 2. формула для расчета возможных случайных чисел
- 3. Crystal Reports Формула для генерации случайных чисел
- 4. О генерации последовательности случайных чисел
- 5. простая программа для сортировки случайных чисел
- 6. Что такое техника итераций?
- 7. Генерация случайных чисел требует слишком много итераций
- 8. простая формула
- 9. PHP - Улучшение генерации последовательности случайных чисел
- 10. Numpy: Сформировать 2 последовательности п случайных чисел, без наложений
- 11. Что такое лучшая функция хэширования для хранения больших случайных чисел?
- 12. Что такое поточно-безопасный генератор случайных чисел для perl?
- 13. Что такое хороший генератор случайных чисел для игры?
- 14. Что такое быстрая замена по модулю для генерации случайных чисел?
- 15. Различные последовательности случайных чисел на разных компьютерах
- 16. Выборочные последовательности случайных чисел в Haskell
- 17. Что такое формула kCGBlendModeColorDodge
- 18. Что такое шаблон пакета для последовательности поплавков?
- 19. более 1 последовательности случайных чисел C# Linq
- 20. Что такое Big-O кода, который использует генераторы случайных чисел?
- 21. Простая формула роста опыта
- 22. C++ генератор случайных чисел без повторения чисел
- 23. Формула для генерации чисел на основе некоторой последовательности
- 24. Что такое генератор случайных чисел в python и numpy?
- 25. Генератор случайных чисел без повторяющихся чисел
- 26. Создание случайных чисел без повторов
- 27. Создание случайных чисел для строк без них
- 28. Что такое семя генератора случайных чисел по умолчанию в boost?
- 29. Генератор случайных чисел без дублирования
- 30. Генерация случайных чисел без дубликатов
Что конкретно не так с хэш-функциями? –