def chinese_remainder(n, a):
''' Compute a number from its moduluses.
From Rosetta Code. '''
sum = 0
prod = reduce(lambda a, b: a*b, n)
for n_i, a_i in zip(n, a):
p = prod / n_i
sum += a_i * number.inverse(p, n_i) * p
return sum % prod
评论列表
文章目录