(57)【要約】【課題】計算機アプリケーションに必要な乱数の品質や所要の区間を統計的手法を用いて簡単かつ短時間に検査し、確認することができる乱数検査技術を提供する。【解決手段】本発明に係る乱数検査装置１０は、乱数発生手段１１で生成された乱数ａを保存する乱数保存手段１２と、この乱数保存手段１２から出力される乱数の統計量を計算すべく、必要に応じて設けられる統計量計算手段１３と、計算された統計量を判定し、かつ、その判定値保存機能を備えた統計量判定手段１４と、この統計量判定手段１４からの判定結果に応じた乱数を出力する出力制御手段１５とを備え、統計量判定手段１４は、アプリケーション１６が必要となる判定結果を生じさせるように構成したものである。【選択図】  図１
2008197847.tif 000002
【特許請求の範囲】
【請求項１】
乱数発生手段で生成された乱数を保存する乱数保存手段と、
この乱数保存手段から出力される乱数の統計量を計算する統計量計算手段と、
計算された統計量を判定する統計量判定手段と、
この統計量判定手段からの判定結果に応じて前記乱数保存手段に保存された乱数をアプリケーションに出力する出力制御手段とを備え、
前記出力制御手段は、前記アプリケーションが必要とする乱数を出力することを特徴とする乱数検査装置。
【請求項２】
前記統計量計算手段は、
符号部に符号を設定する符号設定手段、指数部に値を設定する指数設定手段および仮数部に乱数ビット列を設定する仮数設定手段から乱数を指数に変換する指数変換手段と、
この指数変換手段からの出力を前記アプリケーションが必要とする乱数の性質および利用区間に変換する区間変換手段とを備えた請求項１記載の乱数検査装置。
【請求項３】
前記統計量判定手段は、Ｍ個の測定値を求める測定手段と、
自由度を１の測定値に変換する自由度変換手段と、
前記測定値を複数のグループに分けて測定値と予め設定された判定値とを比較する判定手段とを備えたことを特徴とする請求項１記載の乱数検査装置。
【請求項４】
前記統計量判定手段は、
整数乱数を自由度１の乱数に変換する乱数変換手段と、
前記測定値と予め設定された判定値を直接比較する判定手段とを備えたことを特徴とする請求項１記載の乱数検査装置。
【請求項５】
前記統計量判定手段は、統計量としてＮ次元空間の一部の度数分布を測定する度数分布測定手段を備えた請求項３または４記載の乱数検査装置。
【請求項６】
前記統計量判定手段は、統計量として連の度数分布を測定する度数分布測定手段を備えたことを特徴とする請求項３乃至請求項４記載の乱数検査装置。
【請求項７】
前記統計量判定手段は、判定値の保存機能と測定値とを比較する整数型ディジタル比較回路を判定手段として備えた請求項１，３または６記載の乱数検査装置。
【請求項８】
前記統計量判定手段は、判定手段として１乃至４種類の比較を行なうように構成した請求項１または７記載の乱数検査装置。
【請求項９】
生成された物理乱数あるいは擬似乱数の乱数を保存し、
保存された乱数の統計量を計算し、
計算された乱数の統計量を判定し、
前記乱数の統計量からアプリケーションが必要とする乱数を出力することを特徴とする乱数検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、汎用コンピュータからパソコンやゲーム機のような民生レベルまで幅広い分野に適用される乱数検査技術に係り、特に、アプリケーションに必要な乱数の性質や区間を短時間に検査し、確認することができる乱数検査装置およびその検査方法に関する。
【背景技術】
【０００２】
乱数列とはランダムに並んだ数値の列で、数列Ｘ１，Ｘ２，…，Ｘｎから次の数値Ｘｎ＋１が予測できない数列のことである。このような乱数列の数列を構成する数値を乱数という。乱数列を生成する装置または計算機アルゴリズムを乱数発生器と呼ぶ。
【０００３】
乱数には、その生成方法で分類して、物理乱数と擬似乱数とに大別される。物理乱数は、物理現象を用いて生成された乱数で、擬似乱数は計算機アルゴリズムを用いて生成された乱数である。なお、物理乱数をハードウェア乱数と言うこともあるが、物理現象を用いずに計算機アルゴリズムをハードウェアで実現した乱数もハードウェア乱数ということになるので、ハードウエア乱数の用語を用いることなく、用語として物理乱数と擬似乱数とを使用する。
【０００４】
その他の乱数の呼称として、真性乱数、一様乱数、正規乱数、２値乱数などがある。真性乱数、一様乱数、正規乱数、２値乱数等は乱数の特徴を示す呼称である。真性乱数は乱数の定義に従う理想的な乱数、一様乱数はある区間における発生確率が等しい乱数、正規乱数は発生確率の分布が正規分布である乱数、２値乱数は２種類の値による乱数の呼称である。
【０００５】
計算機に関数として組み込まれる乱数は一般的に一様乱数である。一様でない確率分布が必要な場合は一様乱数から他の発生確率の分布に変換して用いることができる。
【０００６】
乱数を用いる場合、乱数の品質を確認することが重要である。乱数の品質が高いということは真性乱数に近いということである。統計的な理論に基づき乱数の品質を確認することを乱数の検定と言い、真性乱数であることを確認するには高次元の一様性を検定すれば良い。しかし、低次元の検定は比較的容易であるが、高次元の検定は確認の時間が膨大となり現実的ではない。
【０００７】
そこで、一般的には真性乱数が有する性質の確認は複数の目的の異なる検定手法を用いて行なわれ、例えば、一様性があること（偏りがないこと）、周期性がないこと、再現性がないことなどを評価する。
【０００８】
擬似乱数は計算機アルゴリズムを用いて発生させるため、初期値が同じであれば同じ乱数列を生成（再現性）し、次の乱数を生成するときの設定値（シード）が以前に生成したシードと同じであれば、そのシード発生時から同じ乱数列を繰り返し生成（周期性）するという性質がある。
【０００９】
この同じ乱数列の周期性の性質により原理的に擬似乱数は真性乱数とは言えない。しかし、周期が長い場合は、その周期に達するまでは乱数として使えるため計算機では関数として組み込まれる乱数として用いられる。
【００１０】
物理乱数は物理現象を数値化して乱数を生成するものであり、原理的に再現性や周期性は存在しない。物理乱数の場合は乱数を生成する毎に異なる乱数が生成されるので、擬似乱数のように、一度、品質を確認しても常に品質が保たれている保証にはならず、定期的な品質確認が必要である。
【００１１】
物理乱数を発生させて汎用のコンピュータからパソコンやゲーム機のような民生レベルまで幅広い分野に適用される乱数取扱い技術に特許文献１（特開２０００−２５９３９５号公報）や特許文献２（特開平１１−８５４７２号公報）に記載の技術がある。
【００１２】
一方、乱数を用いるアプリケーションによっては、たとえ乱数の品質が良くても、生成した乱数を捨てなければならないことがある。例えば、トランプのシミュレーションをする場合、ジョーカーを加えて５３種類の異なる値が必要である。計算機で用いる乱数発生器が生成する乱数は、ビット単位であることが多く、区間［０，２のべき乗−１］の乱数を生成する。
【００１３】
８ビットの乱数発生器の場合、区間［０〜２５５］の乱数が生成される。この２５６個の異なる値から５３種類の異なる値を取り出す。例えば、いずれか５３種類を使い、残りの２０３個を捨てる方法がある。しかし、５３種類から残りを捨てる方法では捨てる数が多く無駄であるため、通常は生成した乱数値を５３で除算した余りを用いる。しかし、この処理方法でも４４個の乱数は捨てなければならない。
【００１４】
このように、乱数を用いる場合は品質の確認が必要である一方、生成した乱数の一部を破棄することがある。
【特許文献１】特開２０００−２５９３９５号公報
【非特許文献１】特開平１１−８５４７２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
生成された乱数が真性乱数であるかどうかを確認するために、高次元の一様性の検定を行うことは理論的には可能である。高次元の一様性の検査に必要とされる計算機のメモリ容量や処理時間が膨大となり現実的ではない。
【００１６】
そのため、複数の検定手法をもちいて真性乱数が有する性質毎に確認する方法が用いられるが、全ての検定手法を試すには処理時間がかかり現実的ではない。さらに、少ない検定手法では乱数の品質を確認することはできない。このように、用いる乱数の品質を確認して利用するためには、膨大な処理時間がかかってしまうことが課題である。
【００１７】
本発明は、上述した事情を考慮してなされたもので、アプリケーションに必要な乱数の品質を簡単かつ短時間に確認することができる乱数検査装置およびその検査方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明に係る乱数検査装置は、上述した課題を解決するために、乱数発生手段で生成された乱数を保存する乱数保存手段と、この乱数保存手段から出力される乱数の統計量を計算する統計量計算手段と、計算された統計量を判定する統計量判定手段と、この統計量判定手段からの判定結果に応じて前記乱数保存手段に保存された乱数をアプリケーションに出力する出力制御手段とを備え、前記出力制御手段は、前記アプリケーションが必要とする乱数を出力するものである。
【００１９】
本発明に係る乱数検査方法は、上述した課題を解決するために、生成された物理乱数あるいは擬似乱数の乱数を保存し、計算された乱数の統計量を判定し、前記乱数の統計量からアプリケーションが必要とする乱数を出力する方法である。
【発明の効果】
【００２０】
本発明に係る乱数検査装置およびその検査方法においては、アプリケーションに必要な乱数の品質を簡単かつ短時間に確認することができる。
【発明を実施するための最良の形態】
【００２１】
本発明に係る乱数検査装置およびその検査方法の実施の形態について添付図面を参照して説明する。
【００２２】
図１は、本発明に係る乱数検査装置の第１実施形態を示す構成図である。
【００２３】
この乱数検査装置１０は、汎用コンピュータからパソコンやゲーム機のような民生レベルまで幅広い分野に適用される乱数検査技術に適用される。この乱数検査装置１０は発生器１１、乱数保存手段１２、統計量計算手段１３、総計量判定手段１４、出力制御手段１５および計算機アプリケーション１６を備える。
【００２４】
乱数発生器１１は、種々のアプリケーション用の乱数である物理乱数または擬似乱数を生成する乱数発生手段として機能する。乱数発生器１１で生成された乱数ａは、乱数保存手段１２に送られて保存される。生成された乱数ａの分布形状は、種々の確率分布が考えられるが、この確率分布は、統計的な理論に基づき検査が可能な乱数である。
【００２５】
また、乱数保存手段１２はメモリ、ハードディスクなどの記憶装置である。乱数保存手段１２は、物理乱数発生器に内蔵のメモリやＦＤ，ＭＯ，ＣＤ，ＤＶＤなどの記憶媒体でもよい。さらに、乱数保存手段１２は、ハードディスクなどの大容量記憶装置に一旦蓄えておいて、計算機アプリケーション１６が必要とする数の乱数を使うようにしてもよい。
【００２６】
さらに、統計量計算手段１３は、検定方法により計算対象が異なる。検定方法には、カイ二乗検定、ＫＳ（Ｋｏｌｍｏｇｏｒｏｖ−Ｓｍｉｒｎｏｖ）検定、一様分布検定（頻度検定）、系列検定（ｓｅｒｉａｌ  ｔｅｓｔ）、間隔検定（ｇａｐ  ｔｅｓｔ）、ポーカー検定（ｐｏｋｅｒ  ｔｅｓｔ）、分割検定（ｐａｒｔｉｔｉｏｎ  ｔｅｓｔ）、札集め検定（ｃｏｕｐｏｎ  ｃｏｌｌｅｃｔｉｏｎ  ｔｅｓｔ）、順列検定（ｐｅｒｍｕｔａｔｉｏｎ  ｔｅｓｔ）、連検定（ｒｕｎ  ｔｅｓｔ）、ｔ個の数の最大値検定（ｍａｘｉｍｕｍ−ｏｆ−ｔ  ｔｅｓｔ）、衝突検定（ｃｏｌｌｉｓｉｏｎ  ｔｅｓｔ）、系列相関検定（ｓｅｒｉａｌ  ｃｏｒｒｅｌａｔｉｏｎ  ｔｅｓｔ）など、幾つもの種類がある。
【００２７】
検定方法の選択は、計算機アプリケーション１６がどのような乱数を必要とし、どのような乱数を不要とするのかによって決定され、検査される。
【００２８】
例えば、背景技術で述べたトランプの例のように一様乱数の中から不要な乱数を抽出する必要がある場合には、生成した乱数の数に対して使った乱数の割合が４×５３／２５６になっているか、捨てた乱数の割合が（２５６−４×５３）／２５６になっているかを統計的に検定することで、必要な乱数を抽出する機能、または不要な乱数を捨てる機能を利用することができ、アプリケーション１６が必要とする品質の確認、検査も同時に行うことができる。
【００２９】
統計量判定手段１４は、有意水準を決めて乱数発生器１１が生成した乱数ａが起こるものであるか否かを検定する。判定水準は計算機アプリケーション１６の要求により決定し、判定条件は統計量判定手段１４が有する判定値保持機能に保持される。判定値保持機能は、記憶装置や記憶媒体に保持しても良いし、判定を行なう前にその都度計算機アプリケーション１６から判定値保持機能に記憶させる方法でも良い。
【００３０】
出力制御手段１５は、統計量判定手段１４が判定した結果が、計算機アプリケーション１６が要求する乱数であれば乱数保存手段１２に蓄えられた乱数ｂを計算機アプリケーション１６に出力する。このとき、乱数保存手段１２に蓄えられた乱数ｂ全体を出力するのか、統計量計算手段１３が計算対象とした乱数全体を出力するのか、それぞれ一部を出力するのかは、対象とする検定手法により異なり、最適な方法を用いる必要がある。
【００３１】
例えば、統計量計算手段１３が、平均値や分散を用いる検定手法（度数や相関の検定）では、計算の対象とした乱数（統計量ｖ）全てを計算機アプリケーション１６に出力するか否かを判定することになる。
【００３２】
また、統計量計算手段１３での連検定のように連の長さが長いデータ、例えば０が幾つも続く場合に計算機アプリケーション１６が不要とするのであれば、長い連が検出されたときにその連だけを出力しない制御も可能である。この場合、例えば、乱数保存手段１２は破棄する連の長さ程度の容量で充分であり、リアルタイムに処理することが可能である。
【００３３】
図１に示した乱数検査装置１０では、一旦、乱数保存手段１２に乱数発生器１１が生成された乱数ａを蓄えておき、統計量計算手段１３は乱数保存手段１２に蓄えられた乱数ｂの統計量を計算し、統計量判定手段１４は統計量計算手段１３が計算した統計量ｖを判定する。出力制御手段１５は統計量判定手段１４の判定結果に応じて乱数保存手段１２に蓄えられた乱数ｂを計算機アプリケーション１６に出力する。
【００３４】
従来、計算機アプリケーション１６は、乱数生成の関数を用いて乱数発生器１１が生成した乱数ａを直接利用していた。その際、必要な乱数ａの区間の選別を行っていた。また、乱数ａの品質を確認するためには、物理乱数の場合は定期的に検定を実施することが必要で、擬似乱数の場合は利用する乱数系列に対して検定が必要であった。
【００３５】
本実施形態に示された乱数検査装置１０においては、計算機アプリケーション１６が必要とする乱数の性質や利用する区間に着目した検定や検査だけを行うことができ、統計量計算手段１３および統計量判定手段１４で計算対象である乱数ｂの統計量を計算し、計算した統計量を判定したので、リアルタイムに効率良く品質を確認しながら乱数を利用できる効果がある。
【００３６】
また、計算機アプリケーション１６が必要とする乱数の区間は、乱数検査装置１０が選別することができるので、計算機アプリケーション１６は乱数の選別が不要となる。
【００３７】
図２は、乱数検査装置１０の例えば統計量計算手段１３に備えられる指数変換手段の構成例を示すものである。
【００３８】
乱数検査装置１０の統計量計算手段１３（あるいは統計量判定手段１４）には、図２に示すように、乱数を指数に変換する指数変換手段１９と区間変換手段２０が備えられる。指数変換手段１９は、符号部２１に符号を設定する符号設定手段２２と、指数部２３に（指数）値を設定する指数設定手段２４と、仮数部２５に乱数ビット列を設定する仮数設定手段２６とから構成される。
【００３９】
指数変換手段１９は、２値の乱数や整数型の乱数を浮動小数点型に変換して演算するものである。指数変換手段１９は乱数が変換されて格納される不動小数点型格納形式２７を備え、この浮動小数点型格納形式２７は、符号部２１、指数部２２および仮数部２５から構成される。
【００４０】
浮動小数点型格納形式２７は、ＩＥＥＥで規格化されており、実際にはＩＥＥＥ規格に合わせた型に変換される。ここでは説明の都合上、浮動小数点型格納形式２７を一般化して説明する。
【００４１】
指数変換手段１９は、符号設定手段２２、指数設定手段２３および仮数設定手段２４より構成され、符号設定手段２２での符号を設定する。符号部２１は通常１ビットで、例えば０ならば正、１ならば負を表す。符号部２１に乱数を入力すればランダムに正負を発生させることができる。また、指数部２３は２のべき乗を表し、べき値がｅであれば２ｅであることを表す。
【００４２】
通常は、符号なし整数演算で指数部２３を扱えるようにバイアスが用いられるが、本実施形態の乱数検査装置１０では、バイアスがないものとして説明する。仮数部２５は、１．０以上２．０未満の値を表す。
【００４３】
例えば、仮数部２５に２値乱数を設定することにより、２値乱数を１．０×２ｅ以上で２．０×２ｅ未満の任意の浮動小数点型乱数に変換することができる。浮動小数点で表現できる精度は仮数部２５のビット数に依存する。
【００４４】
仮数部２５の最上位ビットは常に１であるため、通常、最上位ビットは浮動小数点格納形式２７には含まず、仮数部２５の有効桁数を１ビット分向上させている。このビットを暗黙ビットと呼ぶ。例えば、仮数部２５が２ビットの場合、仮数部２５は１００、１０１、１１０、１１１の４種類の値の表現が可能である。
【００４５】
この例で暗黙ビットの３ビットをそれぞれｂ０、ｂ１、ｂ２としてｂ０×２０＋ｂ０×２−１＋ｂ０×２−２を計算すると、仮数部２５に表現される具体的な数値として、１；１．２５；１．５；１．７５の４種類の値が得られる。このように２値乱数を任意の浮動小数点型乱数に変換することができるが、計算機アプリケーション１６では、通常０．０以上１．０未満の乱数を用いることが多いため区間の変更が必要である。
【００４６】
次に、指数変換手段１９の仮数部２５に表現される、１．０以上２．０未満の値を０．０以上１．０未満の値に変換する方法について仮数部２５が２ビットの例で説明する。
【００４７】
まず、指数変換手段１９の符号部２１を０（正）に、指数部２３を０に、仮数部２５の２ビットに２値乱数を設定する。設定された２値乱数の値は１以上２未満であるから、１を減算することにより０以上１未満の乱数を生成することができるように変換することは容易に類推できる。しかし、具体的な演算処理は整数演算のように単純ではない。
【００４８】
具体的には、暗黙ビットを含む仮数部２５の３ビットにおいて、１を減算するということは上位のビットを０と考える。すなわち、仮数部２５は０００、００１、０１０、０１１の４種類の値と考える。浮動小数点型格納形式２７では、最上位が１であるから、仮数部２５の左シフト操作と指数部２３のカウントダウン（デクリメント）により最上位が１となるよう修正する。
【００４９】
なお、ここでは指数変換手段１９の説明のためにシフト操作と指数部２３の減算を用いるが、高速化のために予めシフト量を求め指数部２３を設定する方法もある。仮数部２５が０００の場合、指数部２３を最小値に設定する。
【００５０】
指数変換手段１９の浮動小数点型格納形式２７を構成する仮数部２５が００１の場合２回左シフトし、指数部２３を２回カウントダウンする。仮数部２５が０１０の場合１回左シフトして指数部を１回カウントダウンする。仮数部２５が０１１の場合、１回左シフトして指数部２３を１回カウントダウンする。この結果、０．０；１．０×２−２；１．０×２−１；１．５×２−１となり、それぞれ０．０；０．２５；０．５；０．７５の値が得られる。
【００５１】
また、乱数検査装置１０に備えられる指数変換手段１９により２値の乱数や整数型の乱数を浮動小数点型に変換した後に区間変換手段２０を用いる効果について次に説明する。
【００５２】
浮動小数点型格納形式２７の仮数部２５が、ｎビットの整数を０．０以上１．０未満の値の浮動小数点型に変換するには、変換対象とする値をｖとすると、通常演算でｖ／２ｎが実行される。例えば、３２ビットの整数を、３２ビット以上の仮数を有する浮動小数点型格納形式２７に変換することには問題はない。しかし、整数のビット数を、そのビット数よりも小さな仮数部２５に変換するときに問題があり、３ビットの整数から２ビットの仮数部に変換するときの例を説明する。
【００５３】
仮数部２５で３ビットの整数が取り得る値は、０００、００１、０１０、０１１、１００、１０１、１１０、１１１の８種類である。この整数値を８で割った正解は、０．０００、０．１２５、０．２５０、０．３７５、０．５００、０．６２５、０．７５０、０．８７５となる。しかし、２ビット精度であるため、浮動少数点型格納形式２７の仮数部２５に、０．０、０．０、０．２５、０．２５、０．５、０．５、０．７５、０．７５の値として格納される。
【００５４】
浮動小数点型格納形式２７の仮数部２５では、０．０以上１．０未満で各値の発生割合は全て１／４である。８で割った値を２進で表すと０．０００、０．００１、０．０１０、０．０１１、０．１００、０．１０１、０．１１０、０．１１１となるが２ビット精度の仮数部２５に入れるために最も近い値に丸めが行われる。この丸めにより上位ビットが変化した値の右肩に１を示すと次のような演算結果となり０．０００、０．０１１、０．０１、０．１０１、０．１０、０．１１１、０．１１、１．００１、で表わされる。
【００５５】
仮数部２５に入れる演算結果を１０進で表すと、０．０、０．２５、０．２５、０．５、０．５、０．７５、０．７５、１．００となる。これは、０．０以上１．０未満を満足せず、各値の発生割合は０．０、１．０が１／８、その他（０．２５、０．５、０．７５）が１／４である。最も近い値に丸めを行うことは規格に定められたおりエラーやバグではないが、０．０以上１．０未満の乱数を期待して作成された計算機アプリケーション１６で支障が生じる。
【００５６】
また、乱数を用いる計算機アプリケーション１６は、０．０以上１．０未満の区間における一様性を期待して作成されることが多く一様性を満足しない。これに対し、一旦、浮動小数点型の仮数部に乱数を設定することにより、下位ビットからの丸めを回避し、０．０以上１．０未満の区間における一様性を満足するという効果が得られるものである。
【００５７】
図３は、乱数検査装置１０に備えられる指数変換手段１９の具体例を示すものである。
【００５８】
指数変換手段１９を構成する浮動小数点型格納形式２７はＩＥＥＥで規格化された単精度浮動小数点型である。具体例の構成は図２に示されたものと異ならないので、同じ構成には同一符号を付して説明する。
【００５９】
符号設定手段２２を正、負、２値乱数に変えるセレクタ回路や、指数設定手段２４を他の区間へ変換するセレクタ回路や、仮数設定手段２０の乱数が２値乱数の場合はシフトレジスタ回路（共に図示せず）の追加などとすることも可能である。
【００６０】
指数変換手段１９を構成する浮動小数点型格納形式２７の符号部２１は１ビットであり、符号設定手段２２としてＬレベルの信号線を接続する。指数部２３は８ビットであり、指数設定手段２４として最上位ビットにＬレベル、他のビットにＨレベルの信号線を接続する。仮数部２５は２３ビットであり、仮数設定手段２６として３２ビット整数型乱数のうち２３ビットを接続する。
【００６１】
指数変換手段１９を用いて、整数型から浮動小数点型への変換は信号線を接続するだけで具体化でき、信号処理を行わないため、乱数が生成された瞬間に変換が完了する。区間変換手段２０としては減算器やシフトレジスタを用いてもよいが、現状においては、ハードウェアロジックを用いるよりも、一旦乱数をＣＰＵに読み込みＣＰＵ内蔵のコプロセッサを使用することが安価で変換処理の高速性を満足できるので好ましい。また、コプロセッサを単独に入手またはボードで提供されているコプロセッサを用いることも可能である。
【００６２】
本実施形態に備えられた乱数検査装置１０には、指数変換手段１９が備えられ、この指数変換手段１９を構成する不動小数点型形式２７では、一旦、浮動小数点型に変換したデータを用いるため、コプロセッサがＩＥＥＥ規格通りに丸めを行っても区間および一様性に支障が生じない。
【００６３】
図４は、乱数検査装置１０に備えられる統計量判定手段１４の構成例を示すものである。
【００６４】
統計量判定手段１４は、Ｍ個の測定手段３０と、自由度を１に変換する自由度変換手段３１と、必要に応じて設けられる統計量計算手段３２と、測定値と判定値を直接比較する測定値判定手段３３とから構成される。
【００６５】
Ｍ個の測定手段３０は、Ｍ個の測定値ｓ（ｓ１，ｓ２，…ｓｍ）を求める。Ｍ個の測定値ｓ（ｓ１，ｓ２，…ｓＭ）に対応してそれぞれＭ個の期待値ｋ（ｋ１，ｋ，…ｋＭ）が統計的に得られているものとする。自由度変換手段３１は、Ｍ個の測定手段３０から自由度１の測定値ｓ（ｓ１，ｓ２，…ｓＭ）に変換する。統計量計算手段３２は、自由度１の２つの測定値ｓと２つの期待値ｋから統計量ｖを計算するものであるが、自由度１の測定値ｓに変換することにより不要となり、必ずしも必要としない。
【００６６】
図４では、統計量判定手段１４の処理の手順を示している。測定値判定手段３３は、測定値ｓと予め設定された判定値とを比較し判定を行う。
【００６７】
次に、統計量判定手段１４の処理例を、カイニ乗検定の場合について数式を用いて原理を説明する。
【００６８】
統計量判定手段１４のＭ個の判定手段３０により、Ｎ回の試行を行いＭ種類の測定対象ｘ（ｘ１，ｘ２，…ｘ）に対して測定値ｓ（ｓ１，ｓ２，…ｓＭ）を得たとする。測定対象ｘの個々の発生確率をρ（ρ１，ρ２，…ρＭ）とし次式に示す統計量ｖがカイ二乗分布に従うとき、カイ二乗検定により測定値ｓの妥当性を判定することができる。
【００６９】
妥当性とは、測定値ｓ（ｓ１，ｓ２，…ｓＭ）が滅多に起こらないものであるかどうかを判定し、起こりやすいものであれば、測定値ｓは妥当であると判定する。但し、次式では説明のため測定対象毎の発生確率ρｉと試行回数Ｎの積が期待値になるよう示しているが、検定する統計量ｖにより異なることがある。
【００７０】
【数１】
2008197847.tif 000003
【００７１】
ここで、Ｍ個の測定値ｓはｓ１，ｓ２，…ｓＭ、Ｍ個の期待値ｋ（ｋ１，ｋ２，…ｋＭ）はｅ（ρ１Ｎ，ρ２Ｎ，ρ３Ｎ，…，ρＭＮ）に対応する。測定値ｓ（ｓ１，ｓ２，…ｓＭ）の各要素が独立であれば自由度はＭであるが、例えばＭ−１個の測定値ｓから残りの値が分かる場合には自由度がひとつ減ってＭ−１となる。
【００７２】
次に、自由度変換手段３２により測定値ｓをグループＡ、グループＢの２つに分け自由度１の統計量ｖ２が得られるとすると（１）式は（２）式となる。
【数２】
2008197847.tif 000004
【００７３】
全ての測定値ｓの合計はＮ、測定対象個々の確率の合計が１であるから、
【数３】
2008197847.tif 000005
【数４】
2008197847.tif 000006
【００７４】
統計量判定手段１４は、（４）式より得られた測定値判定手段３４で統計量ｖ２を判定するものである。統計量ｖ２が大きい場合は期待値ｋに対する差が大きいことを示し、小さい場合は期待値ｋに近いことを示している。
【００７５】
通常は、期待値ｋからかけ離れた事象や期待値ｋに近すぎる事象は起こり難いとし、判定は、（５）式に示すように、統計量
2008197847.tif 000007
が自由度１のカイ二乗分布の下限値ＸＬと上限値ＸＨの間に入っているか否かを用いて行う。
【数５】
2008197847.tif 000008
【００７６】
【表１】
2008197847.tif 000009
【数６】
2008197847.tif 000010
【００７７】
乱数検査装置１０における統計量判定手段１４としてサイコロを用いた例を説明する。
【００７８】
サイコロをふって出た目の回数を観測する行為は、統計量判定手段３４のＭ個の測定手段３０による６値の乱数の生成とそれらの度数の測定に対応する。乱数として発生する値は１から６の数値であり、各数値の回数を測定する６個の測定手段が必要である。例えば、乱数の計算機アプリケーション１６は１または６の目が出たときに当り、２、３、４、５の目が出たときにはずれを出力するように設定し、当選を判定する装置だとする。
【００７９】
計算機計算機アプリケーション１６には、サイコロをふって得られる１から６の数値のうち１または６を選別する機能が必要である。通常はサイコロをふる行為が正しいだろうと期待してサイコロをふる。不安があれば、予めサイコロを何度もふって、サイコロが正しいことを複数の検定手法を用いて統計的に確認しておく。
【００８０】
しかし、当選を判定する装置を実際に運用する際には、当りが多いのではないかとか少ないのではないかと疑問が生じる場合がある。サイコロをふる行為を一旦止めて、時間のかかる複数の検定を行うことは現実的ではない。このような場合に、試行した回数と当りの出た回数の２つのデータから、当りが統計的に正しいか否かを判定することができるのが判定条件Ｊであり、統計量の判定を整数で行なうことができるためハードウェアで実現するときの回路構成が簡単になる。
【００８１】
Ｍ種類の測定対象から、計算機アプリケーション１６が必要とするか否かの２つに分類する場合や計算機アプリケーション１６の内部で複数、例えば２つのグループに分類する場合などにおいては、分類結果の一方を用いて自由度１のカイ二乗検定に変換することができる。この変換により統計量ｖ２を算出する必要がないことが理解できる。これにより、ハードウェアにおいては整数の比較回路でカイ二乗検定が可能となり、ソフトウェアにおいては短時間にカイ二乗検定を実行することができる効果がある。
【００８２】
図５は、乱数検査装置１０の統計量判定手段１４に備えられる乱数変換手段の例を示すものである。
【００８３】
乱数検査装置１０の統計量判定手段１４には、整数乱数を自由度1の乱数に変換する乱数変換手段３５が備えられる。この乱数変換手段３５は、Ｎビット整数乱数Ａとｉ番目のビットＢまたはＮビット整数乱数Ａがシフトレジスタで構成される。乱数検査装置１０の統計量判定手段１４における乱数変換手段３５には、測定値ｓ（ｓ１，ｓ２，…，ｓＭ）と判定値Ｊｖを直接比較する図示しない判定手段が必要となる。この判定手段には、図４に説明された統計量判定手段１４が用いられる。
【００８４】
乱数変換手段３５は、整数乱数を自由度１の乱数（情報）に変換する手段である。図４に示された統計量判定手段１４では、Ｍ種類の測定値ｓ（ｓ１，ｓ２，…，ｓＭ）から自由度１の測定値ｓに変換する具体的方法を説明し、Ｍ種類の測定対象を、例えば、２つのグループＡ，Ｂに分類することができる。
【００８５】
Ｍ種類の測定値ｓ（ｓ１，ｓ２，…，ｓＭ）が２のべき乗である場合、Ｍを表現する各ビットが２値乱数である。また、Ｍを構成するビットの列も２値乱数である。計算機内部は２進数であり、整数は８ビット、１６ビット、３２ビット、６４ビットなどの所要単位で格納されており、Ｍは２のべき乗である。
【００８６】
乱数変換手段３５では、乱数の生成範囲が整数のビット数である場合、Ｎビット整数乱数Ａのｉ番目の１ビットＢは２値の乱数である。但し、Ｎビットのうち１ビットしか乱数として使用しないので無駄が多い。この場合、Ｎビット整数乱数Ａの格納機能がシフトレジスタであればＮビット分の２値乱数を生成することもできる。ＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）側にシフトして得たシフト２値乱数Ｂを図５に示した。図示しないがＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）側にシフトして２値乱数を得ることも可能である。この場合、生成した全ての乱数を２値乱数に変換することができる。
【００８７】
ｉ番目の１ビットＢまたはシフトで得られる２値乱数Ｃいずれかの２値乱数を用いる計算機アプリケーション１６であれば、自由度を変換することなく直接自由度１の１ビットの乱数が得られる。これにより、図４に説明した統計量判定手段１４の構成と同様の作用効果を奏することができる。
【００８８】
さらに、乱数検査装置１０の統計量判定手段１４（または統計量計算手段１３）は、統計量としてＮ次元空間の一部の度数分布を測定（計算）する度数分布測定手段を有する。度数分布測定手段は、図４に示すように、例えば、統計量計算手段３２を構成しており、統計量としてＮ次の度数分布を計算している。度数分布測定手段３６Ａ，３６Ｂは、Ｍ通りの乱数をＮ回発生させてＮ次元の度数分布を求める場合、ＭＮ種類の度数を求めることになる。高次元の度数分布を求める場合、ＭやＮが大きくなると膨大な処理時間が掛かり全ての度数を検定することは実際には難しい。そこで、度数分布測定手段３６Ａ，３６Ｂは、Ｎ次元空間の一部で自由度が１となる領域についてのみ検定の対象とする監視（検査）や判定を行なっている。
【００８９】
度数分布測定手段３６Ａ，３６Ｂは、計算機の主記憶内で度数を求めることにより、一様性の検定を行う次元を大きくしても度数を求めることができる。
【００９０】
一方、乱数検査装置１０は、統計量判定手段１４が図６（Ａ）および（Ｂ）に示すように、連の度数分布を測定する度数分布測定手段３６Ａ，３６Ｂを有する。
【００９１】
この度数分布測定手段３６Ａ，３６Ｂは、図６（Ａ）および（Ｂ）に示すように、２値乱数測定手段あるいはカウンタ３７で測定された２値乱数から連の長さをカウントするカウンタ３８またはシフトレジスタ３９と、連の長さ毎の度数４０ａ，４０ｂをカウントするカウンタ４０とから構成される。
【００９２】
度数分布測定手段３６Ａ，３６Ｂは、連の長さを測定する連検査には２値乱数を取り扱う他、幾つかの種類がある。連の長さとしては、０の連の長さ、１の連の長さ、０や１に拘らず別の連の長さを求める方法がある。ここでは、ビット１の長さを求める方法について説明する。
【００９３】
図６（Ａ）に示される度数分布測定手段３６Ａでは、最初にカウンタ３８およびカウンタ４０の連の長さ毎の度数４０ａは０にクリアされている。２値乱数３７が順次カウンタ３８に入力される。カウンタ３８は１が連続する間カウントを続け、０が入力されたとき、カウンタ３８には１の連の長さが記録されている。連の長さ毎の度数４０はカウンタ４０により構成され、カウンタ３８のカウント結果に応じた連の長さの回数をカウントする。
【００９４】
その後、カウンタ３８はカウント値をクリアして２値乱数３７が次に１になるまでカウントを停止する。この動作を、Ｎ個の２値乱数３７が入力されるまで繰り返すことにより、連の長さ毎の度数４０ａにはＮ個の乱数に対する連の長さ毎の発生回数が記録される。
【００９５】
次に、図６（Ｂ）について説明する。図６（Ｂ）の度数分布測定手段３６Ｂは、カウンタ３８をシフトレジスタ３９に置き換えたものである。
【００９６】
この度数分布測定手段３６Ｂは、最初にシフトレジスタ３９および連の長さ毎の度数４０ｂは０にクリアされている。２値乱数３７の値が１のときに値１のシフトを行ない、２値乱数３７が０になったらシフトを停止する。この結果、シフトレジスタ３９には連の数に対応した位置のビットが１となる。連の長さ毎の度数４０ｂはカウンタ４０で構成され、シフトレジスタ３９のビットが値１になっているカウンタ４０を選択してカウントする。
【００９７】
連の長さ毎の度数４０ｂのカウントが行われた後、シフトレジスタ３９をクリアして２値乱数３７が次に１になるまでカウントを停止させる。この動作を、Ｎ個の２値乱数３７が入力されるまで繰り返すことにより、連の長さ毎の度数４０ｂにはＮ個の乱数に対する連の長さ毎の発生回数が記録される。
【００９８】
シフトレジスタ３９を用いる図６（Ｂ）に示される方法では、連の長さの度数４０ｂに対応したビット位置で直接連の長さ毎の度数４０ｂを構成するカウンタ４０を選択することができる利点があるが、長さＲの連の度数４０ｂを測定するためにはＲビットのシフトレジスタ３９が必要であるため、長い連の度数４０ｂを扱う場合はカウンタ３８を用いる方が好ましい。
【００９９】
図６（Ａ）および（Ｂ）に示された度数分布（連の長さ毎の分布）測定手段３６Ａ，３６Ｂにより、測定した連の長さ毎の発生回数から（１）式を用いてカイ二乗統計量ｖを計算することができる。但し、期待値Ｅｖは一様分布の統計量を求めるときのようにρｉＮのような形にはならず、乱数の発生回数Ｎや０の連の数や１の連の数に依存したものとなる。
【０１００】
度数分布測定手段３６Ａ，３６Ｂは、０または１が連続する度数を検定する場合はカイ二乗検定となるので、自由度１への変換を行い統計量判定手段１４で得られた効果と同等の効果が得られる。
【０１０１】
次に、乱数検査装置１０の、例えば統計量判定状態１４に備えられる度数分布測定手段３６Ａ，３６Ｂの具体例を、図１および図６を参照して説明する。
【０１０２】
計算機アプリケーション１６は、１または０が連続する乱数を不要とする場合がある。例えば、通信に乱数を用いて変調を行う場合に不都合である。また、暗号に使う場合、０または１が連続する部分は元の平文が見えてしまう可能性もあり不都合が生じる。このような計算機アプリケーション１６は、例えば、所要の長さｒ以上の連を使わずに破棄する。
【０１０３】
この場合、図６（Ａ）および（Ｂ）に示す連の長さ毎の度数４０ａまたは４０ｂは、長さｒ（任意の整数）よりも小さい長さの連が発生した回数をカウントする手段と、ｒ以上の長さの連が発生する回数をカウントする手段があれば良い。これにより、度数分布測定手段３６Ａ，３６Ｂの測定対象は２種類となり、自由度１の統計量ｖ２となり判定条件Ｊの形の判定手段（図示せず）を使うことができ、統計量判定手段１４で示した効果と同様の効果が得られる。
【０１０４】
また、乱数検査装置１０を構成する統計量判定手段１４に、整数型ディジタル比較回路４４を備えた例を、図７を参照して説明する。
【０１０５】
この整数型ディジタル比較回路４４は、ｎビットの整数型の判定値保持回路４５とｎビットの整数型の測定値用カウンタ４６とｎビットのディジタル比較回路４７とから構成される。
【０１０６】
整数型の判定値保持回路４５には、判定条件Ｊに基づく判定値Ｊｖが保持される。
【０１０７】
統計量判定手段１４に備えられる整数型ディジタル比較回路４４で行なわれる判定値Ｊｖの設定方法は、次のようにして行なわれる。
【０１０８】
整数型ディジタル比較回路４４の判定値保持回路４５において、判定値が固定の場合、判定値保持回路４５の出力信号線は判定値になるよう各ビットをＧＮＤまたは電源に接続する。判定値が半固定の場合、各ビットにスイッチやプルアップ抵抗等を用いて設定を変更する。判定値の変更頻度が多い場合、判定値保持回路４５をレジスタやラッチやＤタイプフリップフロップなどの記憶素子を用い、計算機アプリケーション１６（図１参照）との通信手段を設け設定する。
【０１０９】
【表２】
2008197847.tif 000011
【０１１０】
この整数型ディジタル比較回路４４では判定結果は整数で実現できる。カウンタ４６での測定値４６（ｓｉ）は測定対象の度数を求めたものであり整数である。また、（１）式に示すカイ二乗検定においては、検定の精度を考慮し、個々の期待値ｋｉが５以上であることが必要である。そのため、測定値ｓｉについても５以上となる測定条件を設定する必要がある。具体的な測定条件の設定方法としては試行回数Ｎを増やす方法や自由度を小さくする方法による。
【０１１１】
整数型ディジタル比較回路４４においては、測定値ｓｉと判定値Ｊｖを比較する方法を具体的に記述したものであり、乱数検査装置１０の統計量判定手段１４、乱数変換手段３５および度数分布測定手段３６Ａ，３６Ｂに示された効果と同等の作用効果を奏することができる。
【０１１２】
次に、統計量判定状態１４に備えられる整数型ディジタル比較回路４４における判定条件を、図８を参照して説明する。
【０１１３】
この統計量判定手段１４には、１ないし４種類の比較を行なう比較判定手段４９を構成要素として備えられる。比較判定手段４９の判定条件には４つの条件が示されており、図８の横軸ｘは測定値ｓｉを、縦軸ｙは期待値をそれぞれ示す。
【０１１４】
乱数検査装置１０の統計量判定手段１４における判定条件Ｊには、個別の判定条件Ｊ１〜Ｊ４が存在する。図８には、各判定条件Ｊ１〜Ｊ４に対応する（７）式が（７−１）式〜（７−４）式に表わされるように、それぞれ個別に存在し、次式で表わされる。
【数７】
2008197847.tif 000012
【０１１５】
（７−１）式は、図８に示された最下限判定値Ａｖに対応し、（７−２）式は図８の上限判定値Ｂｖに、（７−３）式は図８の下限判定値Ｃｖに、（７−４）式は図８の最上限判定値Ｄｖに、それぞれ対応する。また、（７−５）式は、図８に示す期待値Ｅｖの判定値Ｊｖである。
【０１１６】
統計量判定手段１４の比較判定手段４９では、例えば、カイ二乗分布の下限値ＸＬと上限値ＸＨをそれぞれ有意水準１％、５％における判定値とする。比較判定手段４９のｘ軸方向の期待値Ｅｖは、複数、例えば６つの領域Ａ〜Ｆに分けられる。
【０１１７】
統計量判定手段１４の比較判定手段４９では、領域Ａおよび領域Ｆは、測定値ｓｉが期待値Ｅｖに対してかけ離れているために起こり難い領域であり、測定値ｓｉがこれらの領域に入る確率は５％である。領域Ｃおよび領域Ｅは、測定値ｓｉが期待値Ｅｖに近すぎているために起こり難い領域であり、測定値ｓｉがこれらの領域Ｃ，Ｅに入る確率は１％である。残りの９４％は、領域Ｂおよび領域Ｅに入る。計算機アプリケーション１６（図１参照）がどの領域Ａ〜Ｆを使用するかにより、以上の５種類の判定条件から選択される。
【０１１８】
統計量判定手段１４の中から比較判定手段４９に１つの判定条件を用いる例として、期待値Ｅｖに対してかけ離れている測定値ｓｉを破棄するが、大きい方にかけ離れている場合は採用するときには最下限判定値Ａｖだけを用いて領域Ａを破棄する。この場合、生成した乱数のうち９７．５％が採用される。
【０１１９】
統計量判定手段１４の中から比較判定手段４９に２つの判定条件を用いる例として、期待値Ｅｖに対してかけ離れた測定値を棄却するが、期待値Ｅｖに近い測定値ｓｉを採用したいときには、上限判定値Ｂｖと下限判定値Ｃｖとの判定を行わず最上限判定値Ｄｖと最下限判定値Ａｖとを用いて領域Ａおよび領域Ｆを破棄する。この場合、生成した乱数のうち９９％が採用される。
【０１２０】
統計量判定手段１４の中から比較判定手段４９に３つの比較判定条件を用いる例として、当選を判定する場合のように少ない発生確率で発生する領域のみ採用するとき、例えば、領域Ｄと領域Ｆを採用する場合、期待値Ｅｖと下限判定値Ｃｖと最上限判定値Ｄｖとを用いる。この場合、生成した乱数のうち３％が採用される。比較判定条件４９に４つの判定条件を用いる例として、領域Ｂと領域Ｅを採用する場合、すなわち判定条件Ｊを用いる。この場合、生成した乱数のうち９４％が採用される。
【０１２１】
統計量判定手段１４に用いられる判定値は下限値ＸＬと上限値ＸＨの２種類であるが、計算機アプリケーション１６の採用／不採用の条件を考慮し、（６−１）式から（６−４）式に対応した４種類の判定値Ａｖ〜Ｄｖを用いても良い。
【０１２２】
また、統計量判定手段１４は、比較判定手段４９を用いて、有意水準を１％の判定を行って９９％を採用した場合、１００回の試行のうち１回は不採用となるが、この割合に疑問が生じるときは、ＫＳ検査などで統計量の分布を検定するとよい。
【０１２３】
この統計量判定手段１４に備えられる比較判定手段４９では、判定条件として測定値と判定値を比較する方法を具体的に用いることにより、図１ないし図７に示された乱数検査装置１０や、この乱数検査装置１０に統計量変換手段１４、整数乱数変換手段３５、度数分布測定手段３６Ａ，３６Ｂに示された効果と同等の作用効果を奏する。
【図面の簡単な説明】
【０１２４】
【図１】本発明に係る乱数検査装置の実施形態を示す構成図。
【図２】図１の乱数検査装置に備えられる指数変換手段を示す構成図。
【図３】前記乱数検査装置に備えられる具体的な指数変換手段を示す図。
【図４】前記乱数検査装置に備えられる統計量判定手段を示す構成図。
【図５】前記乱数検査装置に備えられる整数乱数変換手段を示す図。
【図６】（Ａ）および（Ｂ）は、異なるタイプの度数分布測定手段をそれぞれ示す図。
【図７】前記乱数検査装置の統計量判定手段に備えられる整数型ディジタル比較回路を示す構成図。
【図８】前記整数型ディジタル比較回路の判定条件を励磁する図。
【符号の説明】
【０１２５】
１０  乱数検査装置
１１  乱数発生器
１２  乱数保存手段
１３  統計量計算手段
１４  統計量判定手段
１５  出力制御手段
１６  計算機アプリケーション
１９  指数変換手段
２０  区間変換手段
２１  符号部
２２  符号設定手段
２３  指数部
２４  指数設定手段
２５  仮数部
２６  仮数設定手段
２７  浮動小数点型格納形式
３０  測定手段
３１  自由度変換手段
３２  統計量計算手段
３３  測定値判定手段
３５  乱数変換手段
３６Ａ，３６Ｂ  度数分布測定手段
３７  ２値乱数測定手段（カウンタ）
３８  カウンタ
３９  シフトレジスタ
４０  カウンタ
４４  整数型ディジタル比較回路
４５  判定値保持回路
４６  測定値カウンタ
４７  ディジタル比較回路
４９  比較判定手段
【図１】
2008197847.tif 000013
【図２】
2008197847.tif 000014
【図３】
2008197847.tif 000015
【図４】
2008197847.tif 000016
【図５】
2008197847.tif 000017
【図６】
2008197847.tif 000018
【図７】
2008197847.tif 000019
【図８】
2008197847.tif 000020