math.random
ランダムな数値を返す
lua
math.random ([m [, n]])説明
ランダムな数値を返します。
- 引数なしの場合:
0以上1未満の疑似乱数(実数)を返します。 mを指定した場合:1以上m以下の疑似乱数(整数)を返します。mとnを指定した場合:m以上n以下の疑似乱数(整数)を返します。
補足
- LuaJIT は、Tausworthe 擬似乱数生成器(PRNG)を使用して
math.random()とmath.randomseed()を実装しており、その周期は2^223です。この PRNG は、プラットフォーム固有の ANSIrand()を使用する標準の Lua 実装と比較して、非常に高品質な乱数を生成します。 - この PRNG は、すべてのプラットフォームで同じシードから同じ乱数列を生成し、シード引数のすべてのビットを使用します。
- 引数なしの
math.random()は、各呼び出しで 52 ビットの疑似乱数ビットを生成します。結果は0.0以上1.0未満の範囲で均等に分布します。math.random(n [, m])は正確にスケーリングされ、均一性を保つために適切に丸められます。 - 重要:この PRNG や、単純な
math.random()API に基づく他の乱数生成器は、暗号用途には適していません。
サンプルコード
lua
print(math.random()) -- [0, 1] の範囲の実数
print(math.random(10)) -- 1から10の整数
print(math.random(5, 15)) -- 5から15の整数この例では、異なる範囲の擬似乱数を生成しています。
互換性
- Lua5.1
- LuaJIT