Skip to content

Instantly share code, notes, and snippets.

@GINK03
Last active May 11, 2019 10:46
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save GINK03/4c017b3d07ce5756d571e6189183ca6e to your computer and use it in GitHub Desktop.
combinationのパターンを計算するやつ
MOD = 10 ** 9 + 7 # これがないと計算できない
def cmb_gen(n):
    fac = [0] * n
    inv = [0] * n
    fac[0] = fac[1] = 1
    inv[0] = inv[1] = 1
    for i in range(2, n):
        fac[i] = (fac[i - 1] * i) % MOD
        inv[i] = pow(fac[i], MOD - 2, MOD)

    def cmb_mod(n, r):
        return (fac[n] * inv[n - r] * inv[r]) % MOD

    return cmb_mod

N = int(input())
xs = list(map(int, input().split()))
cmb_mod = cmb_gen(N)
r = 0
for i in range(N):
    r += xs[i] * cmb_mod(N-1, i)
    r %= MOD #<-例えばここでちゃんと割る

print(r)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment