Heim  >  Artikel  >  Backend-Entwicklung  >  C++-Programm zur Berechnung des Log-Gammas einer bestimmten Zahl

C++-Programm zur Berechnung des Log-Gammas einer bestimmten Zahl

WBOY
WBOYnach vorne
2023-08-25 15:13:061672Durchsuche

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.

Verwenden Sie die Funktion lgamma(), um Gamma zu protokollieren

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 -

Grammatik

#include < cmath >
lgamma( <number> )

Algorithmus

  • Lesen Sie die Zahl x
  • res := logarithmisches Gamma unter Verwendung von lgamma( x )
  • Ergebnisse zurückgeben

Beispiel

#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;
}

Ausgabe

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

Verwenden Sie die Funktionen gamma() und log()

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.

Algorithmus

  • Lesen Sie die Zahl x
  • g := Verwenden Sie tgamma( x ), um Gamma zu berechnen
  • res := logarithmisches Gamma unter Verwendung von log( g )
  • Ergebnisse zurückgeben

Beispiel

#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;
}

Ausgabe

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

Verwenden Sie die Funktionen Factorial() und log()

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.

Algorithmus

  • Definieren Sie die Fakultätsfunktion, die n

  • erfordert
  • 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

Beispiel

#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;
}

Ausgabe

Logarithm Gamma for x = 10 is: 12.8018
Logarithm Gamma for 15! which is x = 16 is: 27.8993
Segmentation fault (core dumped)

Fazit

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen