乙個多項式如果使用資料結構儲存在計算機中,有以下兩種表示方法:
(1)使用n+2長度的一維陣列來存放,陣列的第乙個位置儲存最大指數n項的係數其他位置按照指數n遞減,按序儲存對應項數:p = (n,an,an-1,...,a1,a0)。例如p(x) = 2x^5+3x^4+5x^2+4x+1轉換為陣列a,a = [5,2,3,0,5,4,1]
(2)只儲存多項式中的非0項,如果有m項非零項,就使用2m+1的陣列來儲存每乙個非零項的指數和係數,陣列的第乙個元素則為此多項式非零項的個數。例如p(x) = 2x^5+3x^4+5x^2+4x+1轉換為陣列a,a = [5,2,5,3,4,5,2,4,1,1,0]
用第一種多項式表示法表示多項式a(x)=3x^4+7x^3+6x+2和b(x)=x^4+5x^3+2x^2+9並進行加法運算
#將兩個最高次方相等的多項式相加後輸出結果
items = 6
def print_p(poly,items):
maxexp = poly[0]
for i in range(1,items):
maxexp = maxexp-1
if poly[i] != 0:
if (maxexp+1) != 0:
print('%dx^%d'%(poly[i],maxexp+1),end='')
else:
print('%d'%poly[i],end='')
if maxexp>=0:
print('%c'%'+',end='')
print()
def sum_p(p1,p2):
result = [none]*items
result[0] = p1[0]
for i in range(1,items):
result[i] = p1[i]+p2[i]
print_p(result,items)
polya = [4,3,7,0,6,2]
polyb = [4,1,5,2,0,9]
#列印多項式a
print('多項式a==>',end='')
print_p(polya,items)
#列印多項式b
print('多項式b==>',end='')
print_p(polyb,items)
#求和print('求和結果==>',end='')
sum_p(polya,polyb)
結果
多項式a==>3x^4+7x^3+6x^1+2
多項式b==>1x^4+5x^3+2x^2+9
求和結果==>4x^4+12x^3+2x^2+6x^1+11
資料結構 鍊錶 多項式加法
問題描述 用單鏈表儲存一元多項式,並實現兩個多項式的加法。可以看出,這種方案適合對某些多項式的處理。但是,在處理一些次數高但項數少的多項式時,存在浪費空間的現象,會有很多閒置的0。可以使用如下定義的單鏈表結構儲存多項式 鍊錶中的每乙個結點是多項式中的一項,結點的資料域包括指數和係數兩部分,由指標域連...
資料結構 多項式的運算
題意理解 已知兩個多項式 1 3x 4 5x 2 6x 2 2 5x 7x 4 3x 多項式和 5x 4x 4 5x 2 9x 2 多項式乘積 a b c d ac ad bc bd 略輸入樣例 4 3 4 5 2 6 1 2 0 3 5 20 7 4 3 1輸出樣例 15 24 25 22 30 ...
資料結構 一元多項式加法
7 17 一元多項式的加法 20 分 設計程式求兩個一元多項式的和。輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數。數字間以空格分隔。輸出1行,以指數遞降方式輸出和多項式非零項的係數和指數 保證不超過整數的表示範圍 數字間以空格分隔,但結尾不能有多餘空格...