問題描述:
已知稀疏多項式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...