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),..
[EP 078] 동전 나누기
문제 78 : p(n)을 n개의 동전을 무더기로 나누는 경우의 수라고 하자. 예를 들어서, 5개의 동전이 있다면, 다음과 같이 7가지 방법이 있어서, p(5) = 7이 된다. ooooo oooo o ooo oo ooo o o oo oo o oo o o o o o o o o 해법 : Q(n, m) 을 n개의 동전을 나눌 때 가장 큰 무더기를 이루는 갯수가 m개인 경우의 수라고 한다. 위 예에서 보면, Q(5,5) = 1 Q(5,4) = 1 Q(5,3) = 2 Q(5,2) = 2 Q(5,1) = 1 이 되는 것을 알 수 있다. 이렇게 정의한 Q(n, m)에서 다음과 같은 식이 항상 성립함을 알 수 있다. Q(n, n) = 1 Q(n, 1) = 1 m Q(n, m) = sum Q(n-m, i) i = 1 마지..
라마누잔, 무한, 급수, 확장된 급수
라마누잔의 식들이 놀랍게 보이는 건 무엇 때문일까? 3 = sqrt(1 + 2 sqrt(1 + 3 sqrt(1 + 4 sqrt(1 + 5 sqrt(1 + 6 sqrt(1 + 7 ... )))) 이런 식을 보면서, 어떻게 저런 식을 생각했을까 놀라게 되는데. 어떻게 저런 식을 만들게 되었는지 재구성해 보자. 우리는 일정한 규칙을 가진 수열을 배우고,그 수열을 처음부터 n 항 까지 차례로 더하는 급수를 배워서, 일반식을 n 으로 표현하여 구하는 법을 배우고,n 을 무한대로 두어, 무한급수가 어찌될지를 구한다. 위 식에서 라마누잔이 변경한 것은, "차례로 더한"다는 지점이다. + 는 우리에게 가장 익숙한 2항연산이고, 이것을 일반화 시키는 것이다. a + b 가 아니라, (위 식에서는)a # b := a + ..