一.演算法簡介
一般地,一元n次多項式的求值需要經過(n+1)*n/2次乘法和n次加法,而秦九韶演算法只需要n次乘法和n次加法。在人工計算時,一次大大簡化了運算過程。
二.演算法應用
1.大整數取模(hdu 1212 big number)
(1)題意:給你乙個長度不超過1000的大數a,還有乙個數值不超過100000的b,快速求a % b。
(2)分析:由秦九昭演算法可知,任意乙個整數n = akak-1ak-2.......a2a1a0可以拆分為:
n = (((((ak)*10 + ak-1)*10 + ak-2)*10 + .......)*10 + a1)*10+a0
例如:1234 = ((1*10 + 2)*10 + 3)*10 + 4
則大整數取模就可以轉化為n個多項式每步取模。
(3)**:
#include #includeusing namespace std;
const int maxn = 10000 + 7;
char str[maxn];
int horner(int mod)
return ans;
}int main()
return 0;
}
三分法 秦九昭演算法
daily english 神話是大眾的夢想,夢想是乙個人的神話。myths are public dreams,dreams are private myths.知識點 洛谷p3382 問題 值序列構成的影象具有凸性或凹性時 求解最值 解釋 在 l,r 區間中找乙個值x,使得f x max。可以用...
noip2014 解方程 hash 秦九昭
坑啊 選了好幾次質數,發現還是這一組靠譜 思路 每次mod之後求出所有解,再mod再求,看著複雜度差不多了就把沒重複的都輸出就行了 const mi array 1.7 of int64 12537,15437,17647,14677,10003,10009,10007 var n,m,shi,su...
秦九韶演算法實現
設定多項式的係數,為1.0 10.0之間的隨機數 param num return public arraylistgetrandomcoefficient integer num return arraylist 秦九韶演算法計算結果 param arraylist param x return ...