関数の概要
lcg_value はPHPで0以上1未満の浮動小数点乱数を生成するための関数です。線形合同法 (Linear Congruential Generator, LCG) に基づいた疑似乱数生成器を利用しており、同じシード値に対しても同じ乱数列を生成します。乱数の範囲は0以上1未満で連続的な値を返すため、確率的な計算やシミュレーションなどに便利です。
パラメータの説明
- この関数はパラメータを受け取りません。使用する際は引数なしで呼び出します。
戻り値
0以上1未満の浮動小数点数を返します。返される値は一様分布に近似しており、0は含まれますが1は含まれません。
使用例
基本的な使い方
<?php
// 0から1未満の乱数を1つ取得
$randomValue = lcg_value();
echo $randomValue;
?>
この例では、単純に lcg_value() 関数を呼び出して乱数を取得し、表示しています。毎回異なる値が出力されます。
乱数を使った簡単な確率判定
<?php
// 30%の確率でtrueを返す例
if (lcg_value() < 0.3) {
echo "当たり!";
} else {
echo "はずれ";
}
?>
0から1の間の値を生成し、その値が0.3未満なら「当たり!」を表示します。このように確率の判定にも活用可能です。
範囲内の乱数を生成する(0-10の小数)
<?php
// 0.0 から 10.0 未満の乱数を生成
$min = 0;
$max = 10;
$randomFloat = $min + lcg_value() * ($max - $min);
echo $randomFloat;
?>
乱数のスケーリングにより、任意の範囲の浮動小数点数を生成する方法です。ここでは0以上10未満の値を取得しています。
関連する関数
rand()– 整数の乱数を生成するmt_rand()– Mersenne Twister方式による高速な整数乱数生成random_int()– 暗号学的に強い乱数を生成する(PHP 7以降)random_float()– PHP標準にはないが、lcg_value()やmt_rand()を用いて浮動小数点乱数を生成するカスタム関数
まとめ
lcg_value は0以上1未満の浮動小数点乱数を簡単に取得できる便利な関数です。引数が不要で手軽に使えるため、確率判定やシミュレーション、数値のランダム化など幅広い場面で活用できます。ただし、暗号学的に強い乱数が必要な場面では random_int() 等の他の関数を検討しましょう。
