著者
石田 翔太郎 須田 礼仁
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC) (ISSN:21888841)
巻号頁・発行日
vol.2015-HPC-152, no.5, pp.1-18, 2015-12-09

計算機上で整数一様乱数を生成する方法については,これまで多くの論文が発表されてきた.一方で,浮動小数点数一様乱数を生成する方法 (または整数一様乱数から浮動小数点数一様乱数への変換法) については,多くの場面で整数一様乱数を定数で割る方法 (rand()/232など) が用いられてきた.しかしながら,この方法では特定の形式の浮動小数点数しか生成されず,ほとんどの浮動小数点数は生成されない.これに対して,Moler は [2-53,1-2-53] の範囲にある全ての浮動小数点数を生成可能な一様乱数生成器を提案し,その後 Thoma により,その範囲は (0,1) にまで拡張された.しかしながら,Thoma により提案された手法は,浮動小数点数の丸めモードによっては,隣り合う浮動小数点数の出現確率が 3 倍程度異なる箇所が生じるといった,不自然な挙動を取ることが実験的及び理論的な検証から分かった.そこで,本論文はこの不自然な挙動を修正することを目的とした上で,まずは正しい浮動小数点数一様乱数生成器について議論し,続いてそのような生成器を提案すると共にその正当性を示し,最後に,提案された生成器の性能を実験により示した.