C++で数値の対数を計算します
この投稿では、C++で数値の対数を計算する方法について説明します。
ヘッダー <cmath>
C++でいくつかの常用対数関数を提供します。この投稿では、一般的に使用される関数のいくつかの概要を説明します。
1.使用する log10()
関数
The log10() 関数は、指定された数値の10を底とする対数を返します。対数が計算される浮動小数点値を取り、その常用対数を計算します。 C++ 11は、整数型に追加のオーバーロードを提供し、引数をdoubleに効果的にキャストします。次のように使用できます。
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <iostream> #include <cmath> int main() { int x = 1000; double lg = log10(x); std::cout << lg << std::endl; // 3 return 0; } |
2.使用する log()
関数
The log()
関数は、指定された数値の自然(基数e)対数を返します。これは、自然指数関数の逆関数です。その使用法を以下に示します。
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <iostream> #include <cmath> int main() { int x = 1000; double lg = log(x); std::cout << lg << std::endl; // 6.90776 return 0; } |
3.使用する log2()
関数
指定された数の2進数(基数2)の対数が必要な場合は、 log2()
関数。次のように呼び出すことができます。
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <iostream> #include <cmath> int main() { int x = 1000; double lg = log2(x); std::cout << lg << std::endl; // 9.96578 return 0; } |
または、対数IDを使用して、値の2を底とする対数を計算することもできます。対数アイデンティティは logba = logy(a)/logy(b)
、 したがって、 log2n = logy(n)/logy(2)
、 どこ y
何でもかまいません(10または2)。実例は次のとおりです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <iostream> #include <cmath> int main() { int x = 1000; double lg = log10(x) / log10(2); std::cout << lg << std::endl; // 9.96578 lg = log2(x) / log2(2); std::cout << lg << std::endl; // 9.96578 return 0; } |
これで、C++で数値の対数を計算できます。