Maison > développement back-end > C++ > le corps du texte

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

WBOY
Libérer: 2023-08-27 08:57:22
avant
1317 Les gens l'ont consulté

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> )
Copier après la connexion

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;
}
Copier après la connexion

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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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> )
Copier après la connexion

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;
}
Copier après la connexion

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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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> )
Copier après la connexion

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;
}
Copier après la connexion

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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal