# coding:utf-8
# 秦九韶算式,减少多项式四则运算量
def func(factors, x):
result = factors[0]
for factor in factors[1:]:
result = result * x + factor
return result
# x + 1
factors = (1, 1)
print(func(factors, 2))
# ((((3x + 9)x + 0)x + 12)x + 4)x + 6是五次加法,五次乘法
# 3x^5 + 9x^4 + 12x^2 + 4x + 6是15次乘法,五次加法
factors = (3, 9, 0, 12, 4, 6)
print(func(factors, 5))
输出:
3
15326
# 一句话
def func(factors, x):
return reduce(lambda a, b: a * x + b, factors)