多項式計算ではライブラリ関数powメソッドとQin Jiutaoアルゴリズムを呼び出し、それらの演算効率を測定してみましょう
関数f(x)=1+(Σxi/i)(iは1からmまでとります)を計算します;
ctime time 関数を使用して実行時間をテストし、x=0.9 を計算してください
U#Include & lt; cmath & gt; 名前空間 std; を使用します。
#define m 1000000000
Clock_t 開始、停止 ;
int main(){
double x;
x = 0.9;
start = Clock();
cout <
cout < < double(stop - start) / CLK_TCK <
start = Clock();
cout <
cout < ;< double(stop - start) / CLK_TCK < endl;
return 0;
}
double Fn1(double x){
int i;
double f=1.0;
for (i = 1; i f += pow(x , i)/i;
return f;
}
double Fn2(double x){
int i;
double f = 0.0;
for (i = m; i >= 1; i--) /*秦九高多項式アルゴリズム*/
f = f*x + 1.0 / i;
return f*x + 1.0;
}
実行時間については以下の表を参照してください
ん
10000 | 100000 | 1000000 | 10000000 | 1000000 | 1000000000 | Fn1 | 0.001 | |
0.003 | 0.015 | 0.157 | 1.619 | 17.955 | 191.608 | Fn2 | 0 | |
0 | 0.001 | 0.005 | 0.049 | 0.472 | 4.706 |
実行時間の結果から、Qin Jiuchao のアルゴリズムの効率が pow 呼び出しメソッドの効率よりもはるかに高いことがわかります
http://www.bkjia.com/PHPjc/1045060.html
www.bkjia.com