C++程序计算给定数字基于给定底数的对数
在几乎所有现代编程语言中,我们都能找到一些对数函数,比如自然对数、以2为底的对数、以10为底的对数等等。但有时我们需要计算不同底数的对数,而这些对数在给定的库函数中不可用。为了实现这个目标,我们可以使用简单的对数公式。在本文中,我们将了解如何在C++中计算给定数字和给定底数的对数值。
计算给定底数的对数的公式
假设我们取一个数字x,它的底数为k,也是给定的。公式如下:
logk(x)=logm(x)logm(k)
其中m是任何已知的(可用的底数)
使用log10(),其中m = 10。
C++ cmath库提供log10()方法来查找给定数字以10为底的对数。我们可以使用相同的函数来计算以给定底数k为底的对数。使用log10()的语法如下所示:
语法
#include < cmath > Log10( <number> )
算法
读取两个数字x和k
res := (使用log10( x )查找x以10为底的对数) / (使用log10( k )查找k以10为底的对数)
返回res
示例
#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; }
输出
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
使用log2(),其中m = 2。
C++ cmath库中的log2()方法允许用户查找给定数字以2为底的对数。可以使用相同的函数计算以指定底数k为底的对数。以下是使用log2()的语法:
语法
#include < cmath > Log2( <number> )
算法
读取两个数字x和k
res := (使用log2( x )查找x以2为底的对数) / (使用log2( k )查找k以2为底的对数)
返回res
示例
#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; }
输出
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
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
使用log(),其中m = e。
C++ cmath库中的自然对数log()方法允许用户查找给定数字以‘e’为底的对数。可以使用相同的函数计算以指定底数k为底的对数。以下是使用log()的语法:
语法
#include < cmath > log( <number> )
算法
读取两个数字x和k
res := (使用log( x )查找x以e为底的对数) / (使用log( k )查找k以e为底的对数)
返回res
示例
#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; }
输出
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
结论
为了获得给定底数的对数结果,可以使用简单的对数公式,其中我们使用任何已知的底数对数方法来计算给定数字x的对数,然后将此结果除以该新底数输入的已知值的底数对数。在本文中,我们使用了三个现有的已知对数函数,即log10()、log2()和log()(自然对数)来生成给定数字及其给定底数的结果。