一元多項式操作
主要程式碼:
//合併一元多項式中相同的冪的項
void UnionList(LinkList &L)
{
int ex1,ex2;
float co0,co1,co2;
LinkList p = L;
for(int i = 1; i < ListLength(L); i++)
{
GetElem(L, i, co1, ex1);
if(co1 == 0)
ListDelete(L, i, co1, ex1);
for (int j = i+1; j < ListLength(L)+1; j++)
{
GetElem(L, j, co2, ex2);
if(co2 == 0)
ListDelete(L, j, co2, ex2);
else if(ex2 == ex1)
{
co0 = co1 + co2; //解決在同一一元多項式中有相同係數的情況
ListDelete(L, j, co2, ex2);
ListDelete(L, i, co1, ex1);
ListInsert(L, i, co0, ex1);
}
}
}
}
//取表L中的第i個元素,並用返回. 操作成功返回OK,失敗時返回ERROR
Status GetElem(LinkList L, int i, float &co, int &ex)
{
if(i > ListLength(L) || i <= 0) return ERROR;
int j = 0;
LinkList p = L;
while(p&&j < i)
{
p = p->next;
j++;
}
if(p && j == i)
{
co = p->coef;
ex = p->expn;
return ex;
}
else
return ERROR;
//-------------------------------------
}
//建立一元多項式P,當輸入的指數和係數都為0時,輸入結束。
// 一元多項式就被建立 。
void CreatPolyn(polynomial &P)
{
InitList(P);
printf(" \n輸入係數和指數:\n");
read(P->coef,P->expn); //輸入係數和指數
//-------------------TODO------------------//
while(P->coef!=0||P->expn!=0){
ListInsert(P, 1, P->coef, P->expn);
printf(" \n輸入係數和指數:\n");
read(P->coef,P->expn);
}
//------------初始化表示式,不斷輸入係數和指數,直到讀到0,0為止----------//
}
//完成多項式相加運算,即:Pa = Pa + Pb,並銷燬一元多項式Pb
void AddPolyn(polynomial &Pa,polynomial &Pb)
{
UnionList(Pa); //合併一元多項式中具有
UnionList(Pb); //相同指數的項
for (int i=1; i<=ListLength(Pb); i++)
{
float co;
int ex;
GetElem(Pb, i, co, ex);
if(LocateElem(Pa, ex) > 0) //判斷Pa中是否具有Pb中相同指數的項,
{ //如果有,進行相加
int j = LocateElem(Pa, ex); //記錄Pa中相同項的位置
int k = 0;
polynomial s = Pa;
while(k < j) //查詢這一位置
{
s=s->next;
k++;
}
s->coef += co; //係數項相加
}
else //不存在相同的指數,將Pb中的該項插入Pa
ListInsert(Pa, 1, co, ex);
}
DestroyList(Pb); //銷燬Pb
}
//完成多項式的求導函式,即:Pa = Pa'
void Derivative(polynomial &P)
{
polynomial s = P->next;
while(s)
{
s->coef=s->coef*s->expn;
s->expn=s->expn-1;
s=s->next;
}
}
//完成多項式的積分函式, Pa = ∫Pa' dx
void Calculus (polynomial &P)
{ polynomial s = P->next;
while(s)
{
s->expn=s->expn+1;
s->coef=s->coef/s->expn;
s=s->next;
}
}
執行結果圖:
完整程式碼:
相關文章
- 一元多項式的應用
- 一元稀疏多項式加減法計算器
- 基礎實驗3-2.1 一元多項式求導 (20分)求導
- 詳解線性結構 —— 一元多項式的乘法與加法運算
- 1010 一元多項式求導 (25分)/c++實現求導C++
- 多項式
- 多項式乘法
- 資料結構學習(C++)——單連結串列應用(一元多項式【1】) (轉)資料結構C++
- 資料結構學習(C++)——單連結串列應用(一元多項式【2】) (轉)資料結構C++
- 多項式全家桶
- 生成函式與多項式函式
- 【模板】多項式乘法逆
- c#一元操作符過載C#
- 在 React 中管理同一元件的多個例項中的狀態React元件
- 多項式學習筆記筆記
- BZOJ 3456: 城市規劃 [多項式求逆元 組合數學 | 生成函式 多項式求ln]函式
- Java 正規表示式例項操作Java
- 36:計算多項式的值
- 實現多項式的JAVA類Java
- 普通有限多項式筆記筆記
- 核函式 多項式核函式 高斯核函式(常用)函式
- 【組合數學】多項式定理 ( 多項式係數 | 多重集全排列 | 對應放球子模型方案數 | 多項式係數相關恆等式 )模型恆等式
- 正交多項式介紹及應用
- 【機器學習】多項式迴歸原理介紹機器學習
- 【機器學習】多項式迴歸sklearn實現機器學習
- PHP preg match正規表示式函式的操作例項PHP函式
- 一元操作符“++”,“- ” 之強制轉換數值
- 第二關係式:一元n次通式
- 一元、二元函式影象繪製函式
- 正規表示式及多語言操作指南
- 【機器學習】多項式迴歸python實現機器學習Python
- Tensorflow教程(前二)——多項式迴歸
- 第二關係式:一元5,6次方
- Django Model各種操作 Meta 常用欄位 一對多操作 多對對操作 F Q查詢 聚合函式Django函式
- 15.6 用多項式一致逼近連續函式函式
- 手擼機器學習演算法 - 多項式迴歸機器學習演算法
- 用多項式的逆優化dp總結優化
- 特徵工程:互動特徵與多項式特徵理解特徵工程