오라클에서 factorial 구하기

내 이 세상 도처에서 쉴 곳을 찾아보았으나, 마침내 찾아낸, 컴퓨터가 있는 구석방보다 나은 곳은 없더라.

오라클에서 factorial 구하기

오라클에 factorial 함수가 없지만 다음과 같이 구할 수 있다.

select exp(sum(ln(level)))
from dual
connect by level <= N

원리

a = e^{\ln a} 임을 이용하면 n! 을 다음과 같이 표현할 수 있다.

%math \begin{aligned} n! &= 1 \times\ 2 \times\ ... \times\ n \newline &= e^{\ln 1} \times\ e^{\ln 2} \times\ ... \times\ e^{\ln n} \newline &= e^{\ln 1 + \ln 2 + \ ... \ + \ln n} \end{aligned}

n! =  1 * 2 * ... * n
   = exp(ln 1) * exp(ln 2) * ... * exp(ln n)
   = exp(ln 1 + ln 2 + ... + ln n)

참조