Heim  >  Artikel  >  Backend-Entwicklung  >  Effizienztest für Polynomberechnungen

Effizienztest für Polynomberechnungen

WBOY
WBOYOriginal
2016-07-30 13:32:01988Durchsuche

Polynomberechnung ruft die Bibliotheksfunktion pow-Methode und den Qin-Jiushao-Algorithmus auf. Messen wir ihre Betriebseffizienz

Berechnungsfunktion f(x)=1 (Σxi/i)(i Von 1 bis m);

Verwenden Sie die Zeitfunktion ctime, um die Laufzeit zu testen, und geben Sie x=0,9 zur Berechnung ein

#include
#include;
#include
using namespace std;
double Fn1(double x);
double Fn2(double x);
#define m 1000000000
clock_t start, stop;
int main(){
double x;
x = 0.9;
start = clock();
cout << Fn1(x) << > stop = clock();
cout << double(stop - start) / CLK_TCK << - ----
start = clock();
cout << Fn2(x) << endl;
stop = Clock();
cout << double(stop - start) / CLK_TCK << endl;
return 0;
}
double Fn1(double x){
int i;
double f=1.0;
for (i = 1; i <= m; i )
f = pow(x, i)/i;
return f;
}
double Fn2(double x){
int i;
double f = 0.0;
for (i = m; i >= 1; i--) /*Qin Jiushao Polynom algorithm* /
f = f*x 1.0 / i;
return f*x 1.0;
}

Die Laufzeit ist in der Tabelle unten dargestellt

Aus der Laufzeit Aus den Ergebnissen geht hervor, dass die Effizienz des Algorithmus von Qin Jiushao viel höher ist als die der Pow-Calling-Methode
m 100 1000 10000 100000 1000000 10000000 1000000 1000000000
Fn1 0.001 0.001 0.003 0.015 0.157 1.619 17.955 191.608
Fn2 0 0 0 0.001 0.005 0.049 0.472 4.706

Das Obige hat den Effizienztest von Polynomberechnungen vorgestellt, einschließlich seiner Aspekte. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn