Maison  >  Article  >  développement back-end  >  Programme C++ pour calculer le logarithme d'un nombre donné en fonction d'une base donnée

Programme C++ pour calculer le logarithme d'un nombre donné en fonction d'une base donnée

WBOY
WBOYavant
2023-08-27 08:57:221263parcourir

Programme C++ pour calculer le logarithme dun nombre donné en fonction dune base donnée

Dans presque tous les langages de programmation modernes, on peut trouver des fonctions logarithmiques telles que le logarithme népérien, le logarithme base 2, le logarithme base 10, etc. Mais parfois, nous devons calculer des logarithmes de différentes bases qui ne figurent pas dans les fonctions données de la bibliothèque. Pour y parvenir, nous pouvons utiliser une simple formule logarithmique. Dans cet article, nous verrons comment calculer une valeur logarithmique en utilisant un nombre et une base donnés en C++.

Formule pour calculer le logarithme en base donnée

Supposons que nous ayons pris un nombre x, dont la base est k, qui a également été donné. La formule est la suivante : La traduction de follow −

est : follow −

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

où m est une base connue (base disponible)

Utilisez log10() où m = 10.

La bibliothèque cmath C++ fournit la méthode log10() pour trouver le logarithme en base 10 d'un nombre donné. nous La même fonction peut être utilisée pour calculer le logarithme d'une base k donnée. La syntaxe utilisée est : Un exemple de log10() est le suivant −

Grammaire

#include < cmath >
Log10( <number> )

Algorithme

  • Lire deux nombres x et k

  • res := (utilisez log10(x) pour trouver le logarithme en base 10 de x) / (utilisez log10(k) pour trouver le logarithme en base 10 de k)

  • res de retour

Exemple

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

Sortie

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

Utilisez log2(), où m = 2.

Dans la bibliothèque cmath en C++, la méthode log2() permet aux utilisateurs de retrouver le logarithme base 2 numéro donné. La même fonction peut être utilisée pour calculer le logarithme d'une base k spécifiée La syntaxe suivante est utilisée pour utiliser log2() −

Grammaire

#include < cmath >
Log2( <number> )

Algorithme

  • Lire deux nombres x et k

  • res := (utilisez log2( x ) pour trouver le logarithme en base 2 de x ) / (utilisez log2( k ) pour trouver le logarithme en base 2 de x )

  • retour res

Exemple

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

Sortie

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

Utilisez log() lorsque m=e.

Dans la bibliothèque cmath en C++, la méthode logarithme naturel log() permet aux utilisateurs de trouver le logarithme Utilisez la base « e » pour le nombre donné. Les logarithmes peuvent être calculés en utilisant une base k spécifiée Même fonctionnalité. La syntaxe suivante est utilisée pour utiliser la fonction log() −

Grammaire

#include < cmath >
log( <number> )

Algorithme

  • Lire deux nombres x et k

  • res := (utilisez log(x) pour trouver le logarithme de x en base e) / (utilisez log(k) pour trouver le logarithme de x en base e)

  • retour res

Exemple

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

Sortie

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

Conclusion

Le résultat logarithmique peut être obtenu en utilisant la formule logarithmique d'une base donnée, Nous utilisons n'importe quelle méthode de logarithme de base connue sur un nombre x donné et le divisons par La base logarithmique utilisant une valeur connue comme nouvelle base en entrée. Dans cet article, nous utilisons Trois fonctions logarithmiques existantes connues sont log10(), log2() et log() [logarithme naturel] Génère des résultats pour les nombres donnés et leur base donnée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer