
在几乎所有现代编程语言中,我们可以找到一些对数函数,如自然对数、以2为底的对数、以10为底的对数等。但有时我们需要计算不在给定库函数中的不同底数的对数。为了实现这个目标,我们可以使用简单的对数公式。在本文中,我们将看到如何在C++中使用给定的数字和给定的底数计算对数值。
给定底数计算对数的公式
假设我们已经取了一个数x,它的基数是k,也已经给出。公式如下:follow −
的翻译为:follow −
$$mathrm{log_{k}left ( x right )=frac{log_{m}left ( x right )}{log_{m}left ( k right )}}$$
其中 m 是任何已知的(可用的基数)
使用log10(),其中m = 10。
C++ cmath库提供了log10()方法,用于找到给定数字的以10为底的对数。我们可以使用相同的函数来计算给定底数k的对数。使用的语法为:log10()的示例如下−
语法
#include Log10( )
算法
读取两个数字 x 和 k
立即学习“C++免费学习笔记(深入)”;
res := (使用 log10(x) 找到以10为底的 x 的对数) / (使用 log10(k) 找到以10为底的 k 的对数)
return res
Example
#include #include 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: 3Log base 9 for input x = 59049 is: 5Log base 2 for input x = 1024 is: 10Log base 4 for input x = 256 is: 4
使用log2(),其中m = 2。
在C++的cmath库中,log2()方法允许用户找到以2为底的对数给定的数字。可以使用相同的函数计算指定基数 k 的对数以下语法用于使用 log2() −
语法
#include Log2( )
算法
读取两个数字 x 和 k
立即学习“C++免费学习笔记(深入)”;
res := (使用 log2( x ) 找到以 2 为底的对数 x) / (使用 log2( k ) 找到以 2 为底的对数 x)
return res
Example
#include #include 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: 3Log base 9 for input x = 59049 is: 5Log base 2 for input x = 1024 is: 10Log base 4 for input x = 256 is: 4
使用log()当m=e时。
在C++的cmath库中,自然对数log()方法允许用户找到对数使用给定数字的基数’e’。可以使用指定基数k计算对数相同的功能。以下语法用于使用 log() 函数 −
语法
#include log( )
算法
读取两个数字 x 和 k
立即学习“C++免费学习笔记(深入)”;
res := (使用 log(x) 以 e 为底找到 x 的对数) / (使用 log(k) 以 e 为底找到 x 的对数)
return res
Example
#include #include 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: 3Log base 9 for input x = 59049 is: 5Log base 2 for input x = 1024 is: 10Log base 4 for input x = 256 is: 4
结论
使用给定底数的对数公式可以得到对数的结果,我们在给定的数字x上使用任何已知的底数对数方法,并将其除以使用已知值作为新底数的对数基数作为输入。在本文中,我们使用了三个已知的现有对数函数,分别是log10()、log2()和log() [自然对数]生成给定数字和它们给定的基数的结果。
以上就是C++程序用于根据给定的底数计算给定数字的对数的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1443671.html
微信扫一扫
支付宝扫一扫