多項式係數提取演算法 c

2022-06-12 17:03:09 字數 2622 閱讀 6762

bool isnumber(char s)

bool isletter(char s)

//函式的作用是把如「-45+2*a-a^2-4*a^6+a^8」這樣的字串提取成這樣:(-45,2,-1,0,0,0,-4,0,1),只提取係數,並根據指數安排起位置.

//s為傳入的字串,result為處理後的一組數,返回這組數的個數

//恩,我需要這樣的乙個函式

int fenxi(string &s,double **result)

if (s.length() == 1 &&isletter(s[0])) //

處理為「a」的情況

if (s.length() ==2 &&isletter(s[1])) //

處理為『-a』的情況

for (int i=0;iif (isletter(s[i]))

}if (letter == 0) //

處理全為數字的情況,正負均可

letter=0;

if (s[0] == '

-') //

判斷最初的運算子正負號,這是為負號的情況

else

//以乙個字元不是『-』時,是數字或字母,都判斷為正號

}for (int i = 0; i < s.length(); i++)

}else

}letter++;

if (i != 0)

if (s[i-1] == '-')

}if (i == 0) //

如果第乙個為字母的話,那這個字母的係數肯定是+1

}if (isnumber(s[i]))

front--;

list[front] = (double)(s[i] - 48); //

將ascii字元-48就變為數字了

}if (s[i] == '+')

if (letter == 0) //

後面多次有這個,主要是把list佇列中儲存的單個數逐次取出並合成num中或pow中的數

num[dijige_num] = num[dijige_num] * op[pin-1]; //

存入num中的數還需要判斷正負號,就用op存的數判斷

dijige_num++;

tail = (int)(s.length() / 2);

front = tail;}}

else

dijige_pow++;

tail = (int)(s.length() / 2);

front = tail;

}

}

if (i != 0)

}if (s[i] == '-')

if (letter == 0)

num[dijige_num] = num[dijige_num] * op[pin-1];

dijige_num++;

tail = (int)(s.length()/2);

front = tail;}}

else

dijige_pow++;

tail = (int)(s.length() / 2);

front = tail;}}

if (i != 0)

}if (s[i] == '*')

if (front != tail) //

'*'號之前一般是num吧,一般不會是冪指數吧 ,如「1+2*a^2+34*a^5」,"*"好像都是係數

num[dijige_num] = op[pin-1] * num[dijige_num];

dijige_num++;

tail = (int)(s.length() / 2);

front = tail;}}

}while (tail != front) //

把最後乙個冪指數新增入pow中

end:

dijige_pow++;

int res_num = pow[dijige_pow-1] + 1; //

最終陣列中的數的個數

/*for (int i=0;i

*/double *temp = new

double[res_num];

*result = new

double[res_num]; //

最終要輸出的資料

for (int i = 0; i < res_num; i++)

for (int i = 0; i < dijige_pow; i++) //

以pow中的數來定位,把num中的數新增到result中相應的位置

/*cout<

*/*result=temp;

return res_num;

}

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...

計算多項式係數

題目描述 給定乙個多項式 ax by k ax by k ax by k,求a nb ma nb m anbm 係數輸入格式 共一行,包含5個整數,分別為a,b,k,n,m每兩個整數之間用乙個空格隔開.輸出格式 出共1行,包含乙個整數,表示所求的係數,這個係數可能很大,輸出對1000000007取模...

計算多項式的係數

給定乙個多項式 a x by k ax by k,計算多項式展開後 xn ymx ny m項的係數。input 第 1 行 乙個整數 t 1 t 100000 為問題數。接下來共 t 行。每行 5 個整數,分別為 a,b,k,n,m,整數之間由乙個空格分隔。0 k 1,000,000,0 n,m k...