秦九韶算法计算机实现
秦九韶算法的介绍链接
一元n次多项式如果采用传统的方法(即先算乘法,再各项相加),计算的时间复杂度为O(n2),若使用秦九韶算法,时间复杂度仅为O(n).
源代码
# 时间复杂度为O(n)
def qin_jiuSHAO_Algorithm(x0, arr):
len_arr = len(arr) - 1
ans = x0 * arr[len_arr] + arr[len_arr - 1]
len_arr = len_arr - 1
while len_arr > 0:
ans = ans * x0 + arr[len_arr - 1]
len_arr = len_arr - 1
return ans
n = input("请输入多项式的次数")
print("请输入多项式系数,从最低位开始输入")
n = int(n)
a = [0.0 for j in range(n + 1)]
for i in range(n + 1):
_str = "第" + str(i) + "个系数"
a[i] = float(input(_str))
x = float(input("请输入x自变量的值"))
print("f(x) = {0}".format(qin_jiuSHAO_Algorithm(x, a)))