Генератор псевдослучайных чисел без повторов: различия между версиями
Перейти к навигации
Перейти к поиску
Admin (обсуждение | вклад) (Новая страница: « <pre> Ni+1 = Ni*q - [Ni*q/P]*P P - простое число q = P - 3^m (выбирается близкое к P/2) При P=101, m=3, q=74, получае...») |
Admin (обсуждение | вклад) |
||
| Строка 8: | Строка 8: | ||
При P=101, m=3, q=74, получаем псевдослучайную последовательность чисел в диапазоне 1-100 без повторов. | При P=101, m=3, q=74, получаем псевдослучайную последовательность чисел в диапазоне 1-100 без повторов. | ||
Данная формула использовалась в программе "Морской бой" для программируемого калькулятора MK-54, опубликовано в журнале "Техника молодежи" 1986 №10 | Данная формула использовалась в программе "Морской бой" для программируемого калькулятора MK-54, опубликовано в журнале "Техника молодежи" 1986 №10 | ||
| + | Отсутствие повторов позволяло полностью перебрать все клетки поля 10x10 псевдослучайным образом. | ||
| + | |||
| + | В калькуляторе был встроена функция генерации псевдослучайных чисел, но она не использовалась, потому что порождала повторы и не могла сформировать полный случайный перебор. | ||
| + | Повтор замыкает псевдослучайную последовательность в кольцо. | ||
| + | Наличие повторов в генераторе псевдослучайных делит множество диапазона чисел на несколько не пересекающихся колец, что не позволяет перебрать весь диапазон. | ||
| + | |||
| + | Есть подозрение, что данная формула генерирует одно кольцо полного перебора при любых P и q удовлетворяющих описанным выше условиям. | ||
</pre> | </pre> | ||
Версия 00:24, 19 октября 2025
Ni+1 = Ni*q - [Ni*q/P]*P P - простое число q = P - 3^m (выбирается близкое к P/2) При P=101, m=3, q=74, получаем псевдослучайную последовательность чисел в диапазоне 1-100 без повторов. Данная формула использовалась в программе "Морской бой" для программируемого калькулятора MK-54, опубликовано в журнале "Техника молодежи" 1986 №10 Отсутствие повторов позволяло полностью перебрать все клетки поля 10x10 псевдослучайным образом. В калькуляторе был встроена функция генерации псевдослучайных чисел, но она не использовалась, потому что порождала повторы и не могла сформировать полный случайный перебор. Повтор замыкает псевдослучайную последовательность в кольцо. Наличие повторов в генераторе псевдослучайных делит множество диапазона чисел на несколько не пересекающихся колец, что не позволяет перебрать весь диапазон. Есть подозрение, что данная формула генерирует одно кольцо полного перебора при любых P и q удовлетворяющих описанным выше условиям.