Processing math: 100%

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

示例

Open Compiler
#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

示例

Open Compiler
#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

示例

Open Compiler
#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()(自然对数)来生成给定数字及其给定底数的结果。

更新于: 2022年12月7日

4K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告