Sqrt(n) 의 연분수 표현 구하기
Sqrt(n) 의 연분수를 정확하게 구하기. sqrt(n) 의 연분수는 [ a_0;a_1, a_2, ... ] 이고 유리수 소수표현처럼 순환마디가 있을거다. a_n = [ b_n ] 으로 정의되고, b_{n+1} = 1 / ( b_n - a_n ) 이고, b_0 = sqrt(n) b_n 은 어떻게든 분모를 유리화할수 있고, b_n = x_n sqrt(n) + y_n (x_n, y_n 은 유리수) 로 표현이 가능하다. 그래서, x_n, y_n 은 언젠가는 동일한 것이 나와서 순환할 것. sqrt(2) = [ 1; 2, 2, 2, ... ] 이다. sqrt(3) = [ 1; 1, 2, 1, 2, ... ] 이 과정을 프로그래밍해 본다. #!/usr/bin/env python # ----------------..
Q-Pochhammer
def q_pochhammer(a, q, n): """ calculate q-pochhammer defined as n-1 k (a;q) = prod (1 - a q ) n k=0 """ product = 1 for k in range(n): term = 1 - a * (q ** k) product *= term return product for a, q, n in [ (2, 2, 1), (2, 2, 4), (5, 5, 4), (1 / 3, 1 / 3, 100), (1 / 2, 1 / 2, 1), (1 / 2, 1 / 2, 2), (1 / 2, 1 / 2, 3), (1 / 2, 1 / 2, 4), (1 / 2, 1 / 2, 10), (1 / 2, 1 / 2, 50), (1 / 2, 1 / 2, 100),..