PerlならサンプルコードPerl入門

2008-09-09

「Math::Random::MT」モジュールで「自然乱数に近い擬似乱数」を発生させる

  1. Perl
  2. モジュール
  3. 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";