0Pricing
C++ Academy · レッスン

cmathヘッダー:pow、sqrt、abs、round

標準数学ライブラリを使って、よく使う数学演算を実行します。

「cmathヘッダー:pow、sqrt、abs、round」はCoddyKit上の無料C++ Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC++ Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C++ Academyコースには全4レッスンが含まれています。

<cmath> ヘッダー

標準的な数学関数は <cmath> に定義されています。ほとんどの関数は double を受け取り、double を返します。float と long double 用のオーバーロードもあります。

べき乗: pow

std::pow(base, exp) は base を exp 乗します。戻り値は double です。

#include <cmath>
double x = std::pow(2.0, 10);   // 1024.0
double y = std::pow(9.0, 0.5);  // 3.0

平方根: sqrt cbrt

sqrt は平方根を返し、cbrt は立方根を返します。

double s = std::sqrt(2.0);   // 1.414...
double c = std::cbrt(27.0);  // 3.0

絶対値: abs

std::abs は整数型と浮動小数点型の両方で使用できます。整数には <cstdlib> を使用するか、単に std::abs を使用してください。

#include <cmath>
#include <cstdlib>
int    i = std::abs(-5);     // 5
double d = std::abs(-3.14);  // 3.14

丸め: floor ceil round trunc

丸め方には次の4種類があります。

  • floor — 負の無限大方向へ
  • ceil — 正の無限大方向へ
  • round — 最も近い整数へ。ちょうど中間の場合はゼロから遠ざかる方向へ
  • trunc — ゼロ方向へ

丸めの例

正の数と負の数で、丸め方がどのように異なるかを確認します。

std::cout << std::floor(3.7) << "\n";  // 3
std::cout << std::ceil(3.2)  << "\n";  // 4
std::cout << std::round(3.5) << "\n";  // 4
std::cout << std::trunc(-3.7) << "\n"; // -3
std::cout << std::floor(-3.7) << "\n"; // -4

浮動小数点数の剰余: fmod

% 演算子は整数にしか使用できません。浮動小数点数には std::fmod を使用してください。

double r = std::fmod(10.5, 3.0); // 1.5

対数

対数には次の3種類があります。

  • std::log — 自然対数(底 e)
  • std::log10 — 底 10 の対数
  • std::log2 — 底 2 の対数(C++11)

指数関数: exp

std::exp(x) は e^x を計算します。自然対数の逆関数です。

double e = std::exp(1.0);     // 2.718...
double x = std::log(e);       // 1.0

三角関数

sin、cos、tan と、それらの逆関数(asin、acos、atan)があります。すべてラジアン単位の角度を受け取ります。

double y = std::sin(M_PI / 2);  // 1.0
// Convert degrees to radians: deg * M_PI / 180

便利な定数(C++20)

C++20 では、<numbers> に名前付きの数学定数が追加されました。std::numbers::pi、e、sqrt2 などがあります。

#include <numbers>
std::cout << std::numbers::pi;     // 3.14159...
std::cout << std::numbers::e;      // 2.71828...

理解度チェック

-3.7 を -4 に丸める関数はどれですか。

まとめ

<cmath> には、べき乗、平方根、絶対値、丸め、剰余、対数、指数関数、三角関数が含まれています。三角関数はラジアン単位で動作します。C++20 では、std::numbers::pi のような名前付き定数のために <numbers> が追加されました。

よくある質問

「cmathヘッダー:pow、sqrt、abs、round」レッスンは無料ですか?

はい。「cmathヘッダー:pow、sqrt、abs、round」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C++ Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C++ Academyコースには全4レッスンが含まれています。

「cmathヘッダー:pow、sqrt、abs、round」で何を学びますか?

標準数学ライブラリを使って、よく使う数学演算を実行します。 ブラウザで直接実行するハンズオンコードでC++ Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

C++ Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのC++ Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「cmathヘッダー:pow、sqrt、abs、round」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このC++ Academyレッスンでコードを書いて実行できますか?

はい。すべてのC++ Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 整数型と浮動小数点型
  2. cmathヘッダー:pow、sqrt、abs、round
  3. randomヘッダーで乱数を扱う
  4. 数値の上限とオーバーフローの動作
← C++ Academyに戻る