0830 commoncode

ph
Admin (토론 | 기여)님의 2017년 8월 30일 (수) 17:52 판 (새 문서: $$ \frac{(a+b+c+\cdots+z)!}{a!b!c!\cdots z!} \pmod p$$ <pre> p = int(1e9)+7 def anmodp(a, n): if n==1: return a%p tmp = anmodp(a, n/2) if n%2==1: #odd re...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색

$$ \frac{(a+b+c+\cdots+z)!}{a!b!c!\cdots z!} \pmod p$$

p = int(1e9)+7
def anmodp(a, n):
    if n==1:
        return a%p

    tmp = anmodp(a, n/2)
    if n%2==1: #odd
        return (a*(tmp**2))%p
    else:
        return (tmp**2)%p 

def fac(n):
    k = 1
    for i in range(2, n+1):
        k *= i
        k %= p
    return k

def invfac(n):
    return anmodp(fac(n), p-2) #euler totient

def comb(x): # arr
    s = sum(x)
    ans = fac(s)
    for i in x:
        ans *= invfac(i)
    return ans % p


blog comments powered by Disqus