Heim  >  Artikel  >  Backend-Entwicklung  >  C++-Programm zur Berechnung des Logarithmus einer gegebenen Zahl basierend auf einer gegebenen Basis

C++-Programm zur Berechnung des Logarithmus einer gegebenen Zahl basierend auf einer gegebenen Basis

WBOY
WBOYnach vorne
2023-08-27 08:57:221312Durchsuche

C++-Programm zur Berechnung des Logarithmus einer gegebenen Zahl basierend auf einer gegebenen Basis

In fast allen modernen Programmiersprachen finden wir einige logarithmische Funktionen wie den natürlichen Logarithmus, den Logarithmus zur Basis 2, den Logarithmus zur Basis 10 usw. Aber manchmal müssen wir Logarithmen verschiedener Basen berechnen, die nicht in den angegebenen Bibliotheksfunktionen enthalten sind. Um dies zu erreichen, können wir eine einfache logarithmische Formel verwenden. In diesem Artikel erfahren Sie, wie Sie in C++ den logarithmischen Wert anhand einer gegebenen Zahl und einer gegebenen Basis berechnen.

Formel zur Berechnung des Logarithmus bei gegebener Basis

Angenommen, wir haben eine Zahl x genommen, deren Basis k ist, die ebenfalls angegeben wurde. Die Formel lautet wie folgt: Die Übersetzung von follow −

lautet: follow −

$$mathrm{log_{k}left ( x right )=frac{log_{m}left ( x right )}{log_{m}left ( k right )}}$$

wobei m eine beliebige bekannte (verfügbare Basis) ist

Verwenden Sie log10(), wobei m = 10.

Die C++-cmath-Bibliothek bietet die Methode log10() zum Ermitteln des Logarithmus zur Basis 10 einer bestimmten Zahl. uns Die gleiche Funktion kann verwendet werden, um den Logarithmus einer gegebenen Basis k zu berechnen. Die verwendete Syntax ist: Ein Beispiel für log10() lautet wie folgt: −

Grammatik

#include < cmath >
Log10( <number> )

Algorithmus

  • Lesen Sie zwei Zahlen x und k

  • res := (verwenden Sie log10(x), um den Logarithmus zur Basis 10 von x zu ermitteln) / (verwenden Sie log10(k), um den Logarithmus zur Basis 10 von k zu ermitteln)

  • Returns

Beispiel

#include <iostream>
#include <cmath>
using namespace std;
float solve( int x, int k){
   float answer;
   answer = log10( x ) / log10( k );
   return answer;
}
int main(){
   cout << "Log base 8 for input x = 512 is: " << solve( 512, 8 ) <<
       endl;
   cout << "Log base 9 for input x = 59049 is: " << solve( 59049, 9 )
       << endl;
   cout << "Log base 2 for input x = 1024 is: " << solve( 1024, 2 ) <<
       endl;
   cout << "Log base 4 for input x = 256 is: " << solve( 256, 4 ) <<
       endl;
}

Ausgabe

Log base 8 for input x = 512 is: 3
Log base 9 for input x = 59049 is: 5
Log base 2 for input x = 1024 is: 10
Log base 4 for input x = 256 is: 4

Verwenden Sie log2(), wobei m = 2.

In der cmath-Bibliothek in C++ können Benutzer mit der Methode log2() den Logarithmus zur Basis 2 ermitteln angegebene Nummer. Die gleiche Funktion kann verwendet werden, um den Logarithmus einer angegebenen Basis k zu berechnen Die folgende Syntax wird verwendet, um log2() −

zu verwenden

Grammatik

#include < cmath >
Log2( <number> )

Algorithmus

  • Lesen Sie zwei Zahlen x und k

  • res := (verwenden Sie log2( x ), um den Logarithmus zur Basis 2 von x zu ermitteln) / (verwenden Sie log2( k ), um den Logarithmus zur Basis 2 von x zu ermitteln)

  • Returns

Beispiel

#include <iostream>
#include <cmath>
using namespace std;
float solve( int x, int k){
   float answer;
   answer = log2( x ) / log2( k );
   return answer;
}
int main(){
   cout << "Log base 8 for input x = 512 is: " << solve( 512, 8 ) <<
       endl;
   cout << "Log base 9 for input x = 59049 is: " << solve( 59049, 9 )
       << endl;
   cout << "Log base 2 for input x = 1024 is: " << solve( 1024, 2 ) <<
       endl;
   cout << "Log base 4 for input x = 256 is: " << solve( 256, 4 ) <<
       endl;
}

Ausgabe

Log base 8 for input x = 512 is: 3
Log base 9 for input x = 59049 is: 5
Log base 2 for input x = 1024 is: 10
Log base 4 for input x = 256 is: 4

Verwenden Sie log(), wenn m=e.

In der cmath-Bibliothek in C++ können Benutzer mit der natürlichen Logarithmus-Methode log() den Logarithmus ermitteln Verwenden Sie die Basis „e“ für die angegebene Zahl. Logarithmen können mit einer angegebenen Basis k berechnet werden Gleiche Funktionalität. Die folgende Syntax wird verwendet, um die log()-Funktion −

zu verwenden

Grammatik

#include < cmath >
log( <number> )

Algorithmus

  • Lesen Sie zwei Zahlen x und k

  • res := (Finden Sie den Logarithmus von x zur Basis e mit log(x)) / (Finden Sie den Logarithmus von x zur Basis e mit log(k))

  • Returns

Beispiel

#include <iostream>
#include <cmath>
using namespace std;
float solve( int x, int k){
   float answer;
   answer = log( x ) / log( k );
   return answer;
}
int main(){
   cout << "Log base 8 for input x = 512 is: " << solve( 512, 8 ) <<
       endl;
   cout << "Log base 9 for input x = 59049 is: " << solve( 59049, 9 )
       << endl;
   cout << "Log base 2 for input x = 1024 is: " << solve( 1024, 2 ) <<
       endl;
   cout << "Log base 4 for input x = 256 is: " << solve( 256, 4 ) <<
       endl;
}

Ausgabe

Log base 8 for input x = 512 is: 3
Log base 9 for input x = 59049 is: 5
Log base 2 for input x = 1024 is: 10
Log base 4 for input x = 256 is: 4

Fazit

Verwenden Sie die logarithmische Formel einer bestimmten Basis, um das logarithmische Ergebnis zu erhalten. Wir verwenden eine beliebige bekannte Basislogarithmusmethode für eine gegebene Zahl x und dividieren sie durch Verwenden Sie als Eingabe einen bekannten Wert als logarithmische Basis der neuen Basis. In diesem Artikel verwenden wir Drei bekannte logarithmische Funktionen sind log10(), log2() und log() [natürlicher Logarithmus] Erzeugt Ergebnisse für die angegebenen Zahlen und ihre angegebene Basis.

Das obige ist der detaillierte Inhalt vonC++-Programm zur Berechnung des Logarithmus einer gegebenen Zahl basierend auf einer gegebenen Basis. 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