首页 >后端开发 >C++ >C++程序用于根据给定的底数计算给定数字的对数

C++程序用于根据给定的底数计算给定数字的对数

WBOY
WBOY转载
2023-08-27 08:57:221330浏览

C++程序用于根据给定的底数计算给定数字的对数

在几乎所有现代编程语言中,我们可以找到一些对数函数,如自然对数、以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 < cmath >
Log10( <number> )

算法

  • 读取两个数字 x 和 k

  • res := (使用 log10(x) 找到以10为底的 x 的对数) / (使用 log10(k) 找到以10为底的 k 的对数)

  • return res

Example

#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 ) 找到以 2 为底的对数 x) / (使用 log2( k ) 找到以 2 为底的对数 x)

  • return res

Example

#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

使用log()当m=e时。

在C++的cmath库中,自然对数log()方法允许用户找到对数 使用给定数字的基数'e'。可以使用指定基数k计算对数 相同的功能。以下语法用于使用 log() 函数 −

语法

#include < cmath >
log( <number> )

算法

  • 读取两个数字 x 和 k

  • res := (使用 log(x) 以 e 为底找到 x 的对数) / (使用 log(k) 以 e 为底找到 x 的对数)

  • return res

Example

#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() [自然对数] 生成给定数字和它们给定的基数的结果。

以上是C++程序用于根据给定的底数计算给定数字的对数的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:tutorialspoint.com。如有侵权,请联系admin@php.cn删除