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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 整数型と浮動小数点型
- cmathヘッダー:pow、sqrt、abs、round
- randomヘッダーで乱数を扱う
- 数値の上限とオーバーフローの動作