分別實現多項式求值的四種運算,若針對不同規模的輸入值
a ,各演算法的執行時間,問題規模
n分別取10,50,100,150,200,300,400,500,10000,20000,50000,100000時繪製四種演算法執行時間的比較圖。
需要用四種不同的方法實現對多項式的求值,這裡採用的是直接代入以及三種不同的遞迴演算法。三種不同的遞迴思想分別為: 1)
pn(x
)=pn
−1(x
)+an
xn 2
)p=a
0,q=
1,q=
qx,p
=p+a
iq 3
)p′i
(x)=
p′i−
1(x)
x+an
−i
import numpy as np
import time
import math
import random
# root = np.array([1, 2, 1])
# p = np.poly1d(root)
# r = np.roots(p)
# print(r)
n = [10,50,100,150,200,300,400,500]
x = 1.2
#將多項式中x的值設為1.2
sum_time1 =
sum_time2 =
sum_time3 =
sum_time4 =
for ele in n:
a = np.random.random(ele)
p = np.poly1d(a)
time_start = time.time()
temp = np.polyval(p, x)
time_end = time.time()
temp = float('inf')
time_start = time.time()
for i in range(0, ele, 1):
temp = temp + a[i] * x**i
time_end = time.time()
# temp = int()
time_start = time.time()
q = 1
for i in range(0, ele, 1):
q = q * x
temp = temp + a[i] * q
time_end = time.time()
#temp = int()
time_start = time.time()
for i in range(0, ele, 1):
temp = temp * x + a[ele - i - 1]
time_end = time.time()
print(sum_time1)
print(sum_time2)
print(sum_time3)
print(sum_time4)
python 多項式求係數 多項式係數的計算
def evalpoly lst,x total 0 for power,coeff in enumerate lst starts at 0 by default total x power coeff return total 或者,可以使用列表,然後使用sum def evalpoly lst...
多項式計算
計算多項式的值 3x2 1 輸入 多項式係數的個數,x的值 輸出 表示式的值 include stdafx.h include iomanip.h include iostream.h define maxsize 100 此多項式是的係數是按照從a0的係數開始輸入的 當x n前的係數為0時,就輸入...
計算多項式
一元多項式的計算用鍊錶實現,本題需要注意的是 1.係數為 1的項只輸出負號,例如1 x 4 2x 8 3x 10 15x 14 4x 18 2.當所有輸入均為0時,輸出結果0 3.如果階數較多的那個多項式剩下的項的係數為0不要建立新的結點 否則會輸出0x 160x 17 include includ...