首頁  >  文章  >  後端開發  >  C++程式用於根據給定的底數計算給定數字的對數

C++程式用於根據給定的底數計算給定數字的對數

WBOY
WBOY轉載
2023-08-27 08:57:221264瀏覽

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刪除