数学定数(M_○○)
数学定数は、数学でよく使われる数値を定数にしたものです。
プログラムで計算させて数値を求めることも可能ですが、定数としてまとめられているので、こちらを使用すると良いでしょう。
数学のロジックを組み込むときに役に立ちます。
数学定数(M_○○)
| 定数 | 数値 | 説明 |
| M_E | 2.71828182845904523536 | 指数関数ネイピア定数:e |
| M_LOG2E | 1.44269504088896340736 | 対数:log2(e) |
| M_LOG10E | 0.434294481903251827651 | 対数:log10(e) |
| M_LN2 | 0.693147180559945309417 | 自然対数:ln(2) |
| M_LN10 | 2.30258509299404568402 | 自然対数:ln(10) |
| M_PI | 3.14159265358979323846 | 円周率:pi |
| M_PI_2 | 1.57079632679489661923 | 円周率:pi/2 |
| M_PI_4 | 0.785398163397448309616 | 円周率:pi/4 |
| M_1_PI | 0.318309886183790671538 | 円周率:1/pi |
| M_2_PI | 0.636619772367581343076 | 円周率:2/pi |
| M_2_SQRTPI | 1.12837916709551257390 | 平方根:2/sqrt(pi) |
| M_SQRT2 | 1.41421356237309504880 | 平方根:sqrt(2) |
| M_SQRT1_2 | 0.707106781186547524401 | 平方根:1/sqrt(2) |
数学定数(M_○○)の使い方
数学定数を使いたいときに使用します。
主に数学のロジックを組み込みたいときに使うので、使う場面は限られてきます。
例えば、円の面積を計算する場合は、以下のように使用します。
void OnInit() {
double hankei = 3.0;
double menseki = hankei * hankei * M_PI;
Print("円の面積 = ", menseki);
}
数学定数(M_○○)を使ったプログラム例
以下は、複数の数学定数を使った簡単なプログラム例です。各定数の値をエキスパートログに出力して確認します。
//+------------------------------------------------------------------+
//| 数学定数の表示サンプル |
//+------------------------------------------------------------------+
void OnInit()
{
// ネイピア数 e
Print("M_E = ", M_E);
// 円周率 pi
Print("M_PI = ", M_PI);
// 円の面積を計算(半径5.0の場合)
double hankei = 5.0;
double menseki = hankei * hankei * M_PI;
Print("半径 ", hankei, " の円の面積 = ", menseki);
// 自然対数 ln(2) を使った計算例
// 2のn乗がある値を超えるnを求める
double targetValue = 1000.0;
double n = MathLog(targetValue) / M_LN2;
Print("2の ", n, " 乗 ≒ ", targetValue);
// 平方根定数の確認
Print("M_SQRT2 = ", M_SQRT2);
Print("M_SQRT1_2 = ", M_SQRT1_2);
// 角度をラジアンに変換する例(90度 → ラジアン)
double degree = 90.0;
double radian = degree * M_PI / 180.0;
Print(degree, "度 = ", radian, " ラジアン");
// sin, cos の計算例
Print("sin(M_PI_2) = ", MathSin(M_PI_2)); // sin(pi/2) = 1.0
Print("cos(M_PI_4) = ", MathCos(M_PI_4)); // cos(pi/4) ≒ 0.7071
}このプログラムでは、円の面積の計算、自然対数を使った計算、角度のラジアン変換、三角関数の計算など、数学定数を活用した基本的な使い方を紹介しています。




