Math::Random::MT - 自然乱数に近い擬似乱数を発生
擬似乱数を発生させるよいアルゴリズムにメルセンヌ・ツイスタ法というものがあります。
メルセンヌ・ツイスタ法によって擬似乱数を求めるモジュールがMath::Random::MTというモジュールです。CAPNから取得することができます。
use Math::Random::MT qw/rand srand/; srand time^$$; my $num = rand 100
Perlの標準モジュールであるrand関数やsrand関数と同じように使用することができます。Math::Randam::MTを使用するときは、srand関数を明示的に呼び出すようにします。
time関数は時刻、$$はプロセスIDで、srandに与える初期値がなるべくランダムになるようにしています。
サンプル
Math::Randam::MTを使ったサンプルです。
use strict; use warnings; use Math::Random::MT qw/rand srand/; print "(1)よりランダムな乱数を発生させる。\n"; # できるだけランダムな初期値を与える。 srand time^$$; for my $i (1 .. 20) { print "$i回目: " . int(rand 100) . "\n"; } print "\n";