Heim > Backend-Entwicklung > C++ > Hauptteil

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

WBOY
Freigeben: 2023-08-25 15:13:06
nach vorne
1720 Leute haben es durchsucht

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> )
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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
Nach dem Login kopieren
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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
Nach dem Login kopieren
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

Ausgabe

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

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!