Алгоритм Баха - Bach's algorithm
Алгоритм Баха является вероятностным за полиномиальное время алгоритм для генерации случайных чисел вместе с их факторизации , названный в честь его первооткрывателя, Эрик Бах . Это интересно, потому что неизвестен алгоритм, который эффективно факторизует числа, поэтому простой метод, а именно генерация случайного числа и последующее его разложение, непрактичен.
Ожидается, что алгоритм выполняет O (log n) проверок простоты .
Более простой, но менее эффективный алгоритм ( ожидающий выполнения тестов на простоту) принадлежит Адаму Калаи .
Обзор
Алгоритм Баха производит число равномерно случайным образом в диапазоне (для заданного входа ) вместе с его факторизацией. Он делает это, выбирая простое число и показатель такой , что , в соответствии с определенным распределением. Затем алгоритм рекурсивно генерирует число в диапазоне , где вместе с факторизацией . Затем он устанавливает и добавляет к факторизации, чтобы произвести факторизацию . Это дает логарифмическое распределение в желаемом диапазоне; затем используется отбраковочная выборка для получения равномерного распределения.