最近研究了python求二项式系数的几种方法,对比了一下他们的速度
1. 利用阶乘简洁求
#普通阶乘
def fact(n):
if n == 0:
return 1
else:
return n*fact(n-1)
#普通Cmn
def Cmn(n,m):
return fact(n)/(fact(n-m)*fact(m))
2. 直接递归求解
def Cnk0(n,k):
if k==0: return 1
if n==0: return 0
return Cnk0(n-1,k)+Cnk0(n-1,k-1)
(1)带备忘录的
def memo(func):
cache={}
@wraps(func)
def wrap(*args):
if args not in cache:
cache[args]=func(*args)