Location : Home > Languages > Perl > Package
Title : Math::Random::TT800
Toolbox Logo

名称

 Math::Random::TT800 - TT800 法による擬似乱数生成


概要

 この perl 拡張モジュールは松本の TT800 と呼ばれる twisted generalized shift register 生成アルゴリズムを実装した。論文は ACM Transactions on Modelling and Computer Simulation, Vol. 4, No. 3, 1994, pages 254-266 に掲載されている。

use Math::Random::TT800;

my $tt = new Math::Random::TT800;

$value = $tt->next();
$ivalue = $tt->next_int();

関数

new

my $tt = new Math::Random::TT800;
my $tt = new Math::Random::TT800 @seeds;

 新たな TT800 オブジェクトを生成する。種はオプションでつけてもよい。TT800 では25個の整数を種としてとる(ただし全部0であってはいけない)。もし種の個数が25個に満たなければ残りはデフォルトの種が設定される。

next

$value = $tt->next();

 TT800 オブジェクトから得られる次の擬似乱数を[0,1) の範囲の浮動小数点値として返す。

next_int

$ivalue = $tt->next_int();

 next_int は32個のランダムビットで示される整数値を返す。


著作権

 ftp://random.mat.sbg.ac.at/pub/data/tt800.c で入手可能な、松本 <matumoto@math.keio.ac.jp> による C のコードを元に実装した。
 Perl 拡張モジュールへの移植と擬似乱数の複数ストリームへの拡張は Otmar Lendl が行った。
 Copyright (c) 1997 by Otmar Lendl (Perl and XS code). All rights reserved.
 本プログラムはフリーソフトウェアであり、Perl 本体と同等の条件で修正・再配布してもよい。


【解説】

  1. TT800 アルゴリズムは氏によって問題が指摘されており、それを改善したのが MT 法であるので、特別な理由がないなら、敢えてこのアルゴリズムを使わないほうがよい。
Toolbox Logo
Updated : 2006/09/01