稀疏多項式的運算

2022-01-17 08:30:08 字數 1151 閱讀 9387

問題描述:

已知稀疏多項式pn(x)=c1x^e1+c2x^e2+....+cmx^em,

其中n=em>em-1>....>e1>=0; ci!=0,m>=1.

試採用儲存量同多項式項數

m成正比的順序儲存結構,編寫求

pn(x0)

的演算法(

x0為給定值),並分析你的演算法的時間複雜度。

問題分析:

多項式的順序儲存結構為:

typedef struct polyterm;

typedef structsqpoly;//多看下,加深理解結構體

什麼叫做儲存量同多項式項數m

成正比的順序儲存結構?這意味著隨著

m的增大,儲存量增加,好吧,這句話貌似沒用。主要是求值了。看了**後,挺容易理解的,自己還不知道這樣做就行了。

緊接著下一題是編寫求p(x)=pn1(x)-pn2(x)

的演算法問題分析:

這道題算是兩個多項式的組合?差不多,剛開始想覺得很多沒想到,你一旦你開始想,理清楚其中的細節,這道題也就解出來了。

status polyminus(sqpoly  &l,  sqpoly &l1, sqpoly  &l2)

else 

}l.length=k;

return ok;

}//coxl也就是

coef 

我弄錯了。

//自己寫的演算法雖然實現了大概的功能,但是沒考慮到順序,以及兩項相減後為

0的情況,它會自動消失?還有當兩個表的長度不相等時?

while

迴圈跳出來就執行完了嗎?還要進一步判斷呢。。這個可能還是要細分,也就是說我的這個演算法,考慮的情況不多,分類討論的思想是很重要的,高中的數學題很多就是需要分類討論,這個思想要培養出來。

參考書上的**:

status polyminus(sqpoly  &l,  sqpoly &l1, sqpoly  &l2)

else

else

p1=p1->next; 

p2=p2->next;

i++;  j++;

}}//else

}//while

while(i

while(j

l.length=k;

return ok;

}

一元稀疏多項式的運算

1.問題描述 設有兩個帶頭指標的單鏈表表示兩個一元稀疏多項式a b,實現兩個一元稀疏多項式的處理。2.實現要求 1 輸入並建立多項式 最好通過檔案輸入,多項式最好不少於3項 2 輸出多項式,輸出形式為整數序列 n,c1,e1,c2,ez cn,en,其中n是多項式的項數,ci,e 分別為第i項的係數...

一元稀疏多項式的運算

輸入並建立多項式 輸出多項式,輸出形式為整數序列 n,c1,e1,c2,e2 cn,en,其中n是多項式的項數,ci,ei分別為第i項的係數和指數。所有輸出都按指數降序排列。多項式a和b相加,建立多項式a b,輸出相加的多項式 多項式a和b相減,建立多項式a b,輸出相減的多項式 多項式a和b相乘,...

多項式運算

多項式運算 順序棧實現 在demo1.cpp基礎上增加 彌補異常處理 以及多位數運算缺點 include include include define ok 1 define error 2 define overflow 1 define ini size 100 typedef int elem...