바흐 알고리즘

Bach's algorithm

바흐의 알고리즘[1] 그 발견자인 에릭 바흐의 이름을 따서 그 인자화와 함께 난수를 생성하기 위한 확률론적 다항식 시간 알고리즘이다.숫자를 효율적으로 인자로 하는 알고리즘이 알려져 있지 않기 때문에, 즉, 난수를 생성하여 인자로 만드는 간단한 방법은 비현실적이기 때문에 관심이 있다.

알고리즘은 예상대로 O(log n) 원시성 테스트를 수행한다.

단순하지만 효율성이 떨어지는 알고리즘(, 기대치, O 2 }n 원시성 테스트)는 Adam Kalai 때문이다.[2]

개요

바흐의 알고리즘은 요인화와 함께 / < N N주어진 입력 의 경우) 범위에서 숫자 x {\ x를 균일하게 생성한다.이것은 특정 분포에 p N (와) p {\ N와) 같은 prime number p displaystyle a을(를) 선택하여 이루어진다.이 알고리즘 다음 재귀적으로 있다. 그리고 x{\displaystyle x=p^{}y}는 그건 동업-= 설정하고, p.를 그 범위는 수는 y{이\displaystyle}M/2<y{이\displaystyle}의 인수 분해와 함께 y≤ M{\displaystyle M/2<, y\leq M}, M)N/p는{\displaystyle M=N/p^{}}를 생성하 a 의 인자화를 생성하기 위한 의 인자화에 대한 p이렇게 하면 원하는 범위에 대한 로그 분포를 가진 이(가) 제공되며, 거부 샘플링을 사용하여 균일한 분포를 얻는다.

참조

  1. ^ Bach, Eric (1988), "How to generate factored random numbers", SIAM Journal on Computing, 17 (2): 179–193, doi:10.1137/0217012, MR 0935336
  2. ^ Kalai, Adam (2003), "Generating random factored numbers, easily", Journal of Cryptology, 16 (4): 287–289, doi:10.1007/s00145-003-0051-5, MR 2002046, S2CID 17271671

추가 읽기

  • 바흐, 에릭.MIT Press, 1984년 수치-이론 알고리즘 분석 설계의 분석 방법.제2장 "Random Factorization의 생성"의 일부를 여기에서 온라인으로 이용할 수 있다.