Heim >Backend-Entwicklung >C++ >C++-Programm zur Berechnung des Log-Gammas einer bestimmten Zahl
Die Gammafunktion wird als Erweiterung der Fakultät jeder gegebenen Zahl beschrieben Mathe. Andererseits kann Fakultät nur für reelle Zahlen definiert werden Die Gammafunktion geht über die Rechenteilung hinaus Negative ganze Zahl. Es wird durch -
dargestellt$$mathrm{Gamma left ( x right )=left ( x-1 right )!}$$
Die Gammafunktion wächst bei höheren Werten schnell; wenden Sie daher den Logarithmus an Gamma wird es deutlich verlangsamen. Der natürliche Logarithmus Gamma einer bestimmten Zahl ist Ein anderer Name dafür.
In diesem Artikel erfahren Sie, wie Sie den Logarithmus einer bestimmten Gammafunktion berechnen Geben Sie in C++ die Zahl x ein.
Die C++-cmath-Bibliothek verfügt über eine lgamma()-Funktion, die den Parameter x akzeptiert und dann ausführt gamma(x) und wenden Sie den natürlichen Logarithmus auf den Wert an. Die Syntax für die Verwendung von lgamma() lautet Wie unten gezeigt -
#include < cmath > lgamma( <number> )
#include <iostream> #include <cmath> using namespace std; float solve( float x ){ float answer; answer = lgamma( x ); return answer; } int main(){ cout << "Logarithm Gamma for x = 10 is: " << solve( 10 ) << endl; cout << "Logarithm Gamma for 15! which is x = 16 is: " << solve( 16 ) << endl; cout << "Logarithm Gamma for x = -1.2 is: " << solve( -1.2 ) << endl; cout << "Logarithm Gamma for x = 3.1415 is: " << solve( 3.1415 ) << endl; }
Logarithm Gamma for x = 10 is: 12.8018 Logarithm Gamma for 15! which is x = 16 is: 27.8993 Logarithm Gamma for x = -1.2 is: 1.57918 Logarithm Gamma for x = 3.1415 is: 0.827604
C++ stellt auch die tgamma()-Methode für die Funktionen gamma und log() bereit. wir können verwenden Sie kommen, um lgamma() zu formulieren. Schauen wir uns den Algorithmus an, um eine klare Vorstellung zu bekommen.
#include <iostream> #include <cmath> using namespace std; float solve( float x ){ float answer; float g = tgamma( x ); answer = log( g ); return answer; } int main(){ cout << "Logarithm Gamma for x = 10 is: " << solve( 10 ) << endl; cout << "Logarithm Gamma for 15! which is x = 16 is: " << solve( 16 ) << endl; cout << "Logarithm Gamma for x = -1.2 is: " << solve( -1.2 ) << endl; cout << "Logarithm Gamma for x = 3.1415 is: " << solve( 3.1415 ) << endl; }
Logarithm Gamma for x = 10 is: 12.8018 Logarithm Gamma for 15! which is x = 16 is: 27.8993 Logarithm Gamma for x = -1.2 is: 1.57918 Logarithm Gamma for x = 3.1415 is: 0.827604
Im vorherigen Beispiel haben wir die Verwendung der Methoden tgamma() und log() gesehen. wir können Definieren Sie unsere Funktion „factorial()“, akzeptieren Sie jedoch nur positive Zahlen. lasst uns sehen Algorithmus zum besseren Verständnis.
Definieren Sie die Fakultätsfunktion, die n
Wenn n 1 ist, dann
Return n
Sonst
Gib n * Fakultät (n - 1) zurück
Ende wenn
In der Hauptmethode verwenden Sie die Zahl x, um das logarithmische Gamma von x zu ermitteln
g := Fakultät (x - 1)
res := Verwenden Sie log( g ), um den natürlichen Logarithmus von g zu finden
Ergebnisse zurückgeben
#include <iostream> #include <cmath> using namespace std; long fact( int n ){ if( n == 1 ) { return n; } else { return n * fact( n - 1); } } float solve( float x ){ float answer; float g = fact( x - 1 ); answer = log( g ); return answer; } int main(){ cout << "Logarithm Gamma for x = 10 is: " << solve( 10 ) << endl; cout << "Logarithm Gamma for 15! which is x = 16 is: " << solve( 16 ) << endl; cout << "Logarithm Gamma for x = -1.2 is: " << solve( -1.2 ) << endl; }
Logarithm Gamma for x = 10 is: 12.8018 Logarithm Gamma for 15! which is x = 16 is: 27.8993 Segmentation fault (core dumped)
Die Gamma-Methode wird manchmal als Erweiterung der faktoriellen Methode bezeichnet. Da die Gamma- oder Fakultätsmethode so schnell wächst, können wir dafür Logarithmen verwenden. dabei In dem Artikel haben wir einige Techniken gesehen, um Log-Gamma für eine bestimmte Zahl durchzuführen X. Zunächst verwenden wir die Standardfunktion lgamma() aus der cmath-Bibliothek in C++. Die zweite Möglichkeit besteht darin, tgamma() und log() zu verwenden und schließlich unsere faktorielle Methode zu definieren. Die letzte Methode ist jedoch auf positive Zahlen beschränkt. es funktioniert nicht mit negativen Zahlen Nummer. Und es funktioniert nur mit ganzen Zahlen gut.
Das obige ist der detaillierte Inhalt vonC++-Programm zur Berechnung des Log-Gammas einer bestimmten Zahl. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!