JP2603809B2 - 乱数生成回路 - Google Patents

乱数生成回路

Info

Publication number
JP2603809B2
JP2603809B2 JP6282914A JP28291494A JP2603809B2 JP 2603809 B2 JP2603809 B2 JP 2603809B2 JP 6282914 A JP6282914 A JP 6282914A JP 28291494 A JP28291494 A JP 28291494A JP 2603809 B2 JP2603809 B2 JP 2603809B2
Authority
JP
Japan
Prior art keywords
random number
circuit
constant
register
constant setting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP6282914A
Other languages
English (en)
Other versions
JPH08123669A (ja
Inventor
政則 興梠
孝造 柏原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IZAX CO., LTD.
Original Assignee
IZAX CO., LTD.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by IZAX CO., LTD. filed Critical IZAX CO., LTD.
Priority to JP6282914A priority Critical patent/JP2603809B2/ja
Publication of JPH08123669A publication Critical patent/JPH08123669A/ja
Application granted granted Critical
Publication of JP2603809B2 publication Critical patent/JP2603809B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、混合合同法に基づいて
乱数を生成する回路に関するものである。
【0002】
【従来の技術】従来、乱数生成の方法として、下記数1
に基づいて乱数を繰り返し算出する混合合同法が知られ
ている。
【0003】
【数1】Xn+1=a・Xn+b ここで、Xnはn回目の乱数算出値、Xn+1は(n+1)回
目の乱数算出値、a及びbは定数である。
【0004】上記演算式を用いた乱数の算出に際して
は、乱数の初期値X0、定数a及びbを初期設定し、こ
れによって第1回目の乱数値X1を得る。そして、該乱
数値X1に定数aを乗算し、その結果に定数bを加算し
て、第2回目の乱数値X2を得る。以下、同様にして、
乱数の算出を繰り返すのである。
【0005】ゲーム機の如く、乱数を応用した各種の電
子機器においては、上記演算式がコンピュータプログラ
ムとしてマイクロコンピュータに登録されており、乱数
の必要時には、その都度、上記演算式に基づく演算処理
を行なって、乱数を算出すると共に、その演算回数nを
カウントアップしている。
【0006】
【発明が解決しようとする課題】しかしながら、従来の
混合合同法に基づく乱数の生成においては、乱数の初期
値X0、定数a及びbが決まると、これらの値に基づい
て算出される乱数の数列Xn(n=1,2,・・・)は一義的に決
定され、一定の周期性を有することになるから、必ずし
も一様な確率で分布する品質の高い乱数列が得られない
問題がある。本発明の目的は、従来よりも高い品質の乱
数列を得ることが出来る乱数生成回路を提供することで
ある。
【0007】
【課題を解決する為の手段】本発明に係る乱数生成回路
は、混合合同法に基づく演算式を用いて乱数を繰り返し
算出する演算回路と、前記演算式に含まれる乗算及び加
算に用いる2つの定数を設定する定数設定回路とを具
え、定数設定回路は、演算回路による過去2回の乱数算
出結果を以て、前記2つの定数を夫々更新するものであ
る。
【0008】具体的構成において、演算回路は、外部か
らの乱数値の読出し要求の有無に拘わらず、一定周期で
乱数の算出を繰り返し、外部からの乱数値の読出し要求
が発生する度に、その時点で得られる乱数値を出力する
ものである。
【0009】更に具体的構成において、定数設定回路
は、外部からの乱数値の読出し要求が発生する度に、そ
の時点を基準とする過去2回の乱数算出結果を以て、前
記定数の更新を行なうものである。
【0010】
【作用】上記本発明の乱数生成回路においては、混合合
同法に基づく演算式に含まれる乗算及び加算に用いる2
つの定数が、従来の如き一定値ではなく、演算が進む過
程で得られる乱数列を用いて、2つの定数が更新され
る。従って、混合合同法に基づく演算式が本来的に有し
ているランダム性に加えて、演算式の定数にランダム性
が付与される結果、従来よりもランダム性に富んだ乱数
列が得られる。
【0011】又、上記第1の具体的構成においては、演
算回路が一定周期で乱数の算出を繰り返している過程
で、任意の時点で乱数値の読出し要求が発生し、これに
応じて乱数値が出力される。ここで、乱数値の読出し要
求の発生時点そのものが外因的なランダム性を有してい
るから、これに応じて、読み出される乱数の値には、こ
の外因的なランダム性が加わって、更に品質の高い乱数
列が得られることになる。
【0012】更に、上記第2の具体的構成においては、
2つの定数の更新時期に対しても、乱数値の読出し要求
発生時点が有している外因的なランダム性が加わって、
この結果として得られる乱数列は一様な確率で分布し、
品質の高い乱数が得られる。
【0013】
【発明の効果】本発明に係る乱数生成回路によれば、そ
の出力として得られる乱数を以て、乱数算出に用いる定
数の更新を行なうから、従来よりも高い品質の乱数が得
られる。
【0014】
【実施例】以下、本発明の一実施例につき、図面に沿っ
て詳述する。図1は、本発明に係る乱数生成回路を1チ
ップIC化したものであって、外部回路としてのマイク
ロコンピュータから入力される一定周期のクロックCL
Kと、任意時点でマイクロコンピュータから発せられる
乱数値読出し要求WRに応じ、品質の高い乱数値を出力
する。
【0015】図1の如く乱数生成ICは、タイミング制
御回路(1)、定数設定回路(2)、レジスタ回路(3)、演
算回路(4)及び外部インタフェース(5)から構成されて
いる。上記定数設定回路(2)、レジスタ回路(3)、演算
回路(4)及び外部インタフェース(5)は、タイミング制
御回路(1)との間の制御パルスC1〜C9によって、後
述の如く動作が制御されている。
【0016】ここで、演算回路(4)は、下記数2の右辺
第1項の乗算を行なう乗算器(14)と、右辺第2項の加算
を行なう加算器(15)と、加算器(15)から得られる乱数値
をタイミング制御回路(1)からの制御パルスC7の立下
りでラッチするラッチ(16)とを具えている。
【0017】
【数2】Xn+1=a・Xn+b ここで、Xnはn回目の乱数算出値、Xn+1は(n+1)回
目の乱数算出値、a及びbは夫々、下記の如く更新設定
される定数である。
【0018】レジスタ回路(3)は、前記演算回路(4)の
ラッチ(16)によりラッチされた乱数値Xnを取り込ん
で、これを演算回路(4)の乗算器(14)における次回の演
算に供するためのXnレジスタ(11)と、乗算器(14)にお
ける乗算に用いる前記定数aを定数設定回路(2)から取
り込んで、これを乗算器(14)に供給するためのaレジス
タ(12)と、加算器(15)における加算に用いる前記定数b
を定数設定回路(2)から取り込んで、これを加算器(15)
に供給するためのbレジスタ(13)とを具えている。Xn
レジスタ(11)、aレジスタ(12)及びbレジスタ(13)は、
タイミング制御回路(1)からの制御パルスC4、C5、
C6の立下りで、演算回路(4)の演算結果、第1定数設
定部(9)の定数a、第2定数設定部(10)の定数bを夫々
ラッチする。
【0019】定数設定回路(2)は、乱数生成IC起動時
に、レジスタ回路(3)のXnレジスタ(11)、aレジスタ
(12)及びbレジスタ(13)に対して、夫々の初期値X0
0及びb0を設定するための第1初期値保持部(6)、第
2初期値保持部(7)及び第3初期値保持部(8)を具えて
いる。
【0020】又、定数設定回路(2)は、第2回目以降の
乱数算出において、前記定数a及びbを保持し、これら
をレジスタ回路(3)のaレジスタ(12)及びbレジスタ(1
3)に供給するための第1定数設定部(9)及び第2定数設
定部(10)を具えている。第1定数設定部(9)及び第2定
数設定部(10)は夫々、データのビット数(例えば20ビ
ット)に応じた個数のフリップフロップを並列に接続し
て構成されている。第1定数設定部(9)は、タイミング
制御回路(1)からの制御パルスC1の立上りで、演算回
路(4)による演算結果をラッチする。一方、第2定数設
定部(10)は、タイミング制御回路(1)からの制御パルス
C2の立上りで第1定数設定部(9)のデータ、即ち前回
の演算結果をラッチする。この結果、第1定数設定部
(9)には前回の乱数算出値、第2定数設定部(10)には前
々回の乱数算出値が格納されることになる。この様に、
異なる演算回数における乱数算出値を第1定数設定部
(9)及び第2定数設定部(10)に格納するから、定数a及
びbは互いに相関のないデータに設定されることにな
る。
【0021】更に、外部インタフェース(5)は、外部回
路としてのマイクロコンピュータから発せられる乱数値
読出し要求WRに応じ、演算回路(4)のラッチ(16)にラ
ッチされている乱数値を一旦取り込んだ後、これをマイ
クロコンピュータへ出力するデータバッファ(17)を具え
ている。
【0022】図2は、上記制御パルスに応じた乱数生成
ICの動作を表わしている。乱数生成ICは、マイクロ
コンピュータから供給されるクロックCLKに同期して
動作し、6クロックを1周期として、上記数2に基づく
1回の演算を行なう。例えば図示の如く、ラッチ(16)、
aレジスタ(12)、bレジスタ(13)、Xnレジスタ(11)、
第1定数設定部(9)及び第2定数設定部(10)に夫々、前
回値としてデータX8、X4、X3、X8、X7、X6が設定
されている場合において、9回目及び11回目の演算で
は乱数値読出し要求がなく、10回目の演算で乱数値読
出し要求が発生したものと想定する。
【0023】乱数値読出し要求の無い9回目の演算にお
いては、制御パルスC7、C1及びC2に応じて、第1
定数設定部(9)に定数aとして設定されているデータX
7が第2定数設定部(10)へシフトされて、新たにデータ
定数bとして設定されると共に、第1定数設定部(9)に
は、ラッチ(16)にラッチされている前回の乱数算出値X
8が定数aとして設定される。
【0024】そして、Xnレジスタ(11)に設定されてい
る前回の乱数算出値X8と、aレジスタ(12)に設定され
ている定数a(データX4)と、bレジスタ(13)に設定さ
れている定数b(X3)が演算回路(4)へ供給されて、新
たな乱数値X9が算出され、ラッチ(16)にラッチされ
る。その後、制御パルスC4に応じて、ラッチ(16)の乱
数値X9がレジスタ回路(3)のXnレジスタ(11)に取り
込まれる。
【0025】乱数値読出し要求の発生した10回目の演
算においては、先ず制御パルスC7、C1及びC2に応
じて、第1定数設定部(9)に定数aとして設定されてい
るデータX8が第2定数設定部(10)へシフトされて、新
たにデータ定数bとして設定されると共に、第1定数設
定部(9)には、ラッチ(16)にラッチされている9回目の
乱数算出値X9が定数aとして設定される。
【0026】そして、Xnレジスタ(11)に設定されてい
る前回の乱数算出値X9と、aレジスタ(12)に設定され
ている定数a(データX4)と、bレジスタ(13)に設定さ
れている定数b(X3)が演算回路(4)へ供給されて、新
たな乱数値X10が算出され、ラッチ(16)にラッチされ
る。ラッチ(16)の乱数値X10は外部インタフェース(5)
のデータバッファ(17)を経てマイクロコンピュータへ送
出される。
【0027】次に制御パルスC4、C5、C6に応じ
て、ラッチ(16)にラッチされているデータX10がXnレ
ジスタ(11)に設定され、第1定数設定部(9)に設定され
ているデータX9がaレジスタ(12)に設定され、更に第
2定数設定部(10)に設定されているデータX8がbレジ
スタ(13)に設定される。斯くして、Xnレジスタ(11)、
aレジスタ(12)及びbレジスタ(13)のデータ更新が行な
われるのである。
【0028】次の乱数値読出し要求の無い11回目の演
算においては、9回目の演算と同様、先ず制御パルスC
7、C1及びC2に応じて、第1定数設定部(9)に定数
aとして設定されているデータX9が第2定数設定部(1
0)へシフトされて、新たにデータ定数bとして設定され
ると共に、第1定数設定部(9)には、ラッチ(16)にラッ
チされている10回目の乱数算出値X10が定数aとして
設定される。
【0029】そして、Xnレジスタ(11)に設定されてい
る10回目の乱数算出値X10と、aレジスタ(12)に設定
されている定数a(データX9)と、bレジスタ(13)に設
定されている定数b(X8)が演算回路(4)へ供給され
て、新たな乱数値X11が算出され、ラッチ(16)にラッチ
される。その後、制御パルスC4に応じて、ラッチ(16)
の乱数値X11がレジスタ回路(3)のXnレジスタ(11)に
取り込まれる。
【0030】図3は、上記動作によって、Xnレジスタ
(11)、aレジスタ(12)、bレジスタ(13)、データバッフ
ァ(17)、第1定数設定部(9)及び第2定数設定部(10)内
のデータが順次、更新されていく様子を表わしたもので
ある。ここでは、4回目と7回目に乱数値読出し要求W
Rが発生している。図示の如くXnレジスタ(11)内のデ
ータは演算周期で更新されていくが、aレジスタ(12)及
びbレジスタ(13)内のデータは、読出し要求が発生した
ときに、その時点の第1定数設定部(9)及び第2定数設
定部(10)内のデータによって更新される。
【0031】即ち、乱数値読出し要求WRが発生しない
期間においては、aレジスタ(12)及びbレジスタ(13)内
のデータは一定値であるが、読出し要求が発生したとき
は、過去2回の乱数算出値に基づいて、aレジスタ(12)
及びbレジスタ(13)のデータ更新が行なわれる。従っ
て、定数a及びbが一定値であった従来に比べて、乱数
列の周期性が著しく低減し、限りなく一様な確率で分布
する品質の高い乱数が得られる。又、乱数値読出し要求
WRがランダムな時間間隔で発生する場合には、そのラ
ンダム性が乱数の品質を更に高めることになる。
【0032】図4乃至図7は、上記乱数生成ICによっ
て生成した乱数列についての各種検定結果を示してい
る。何れの検定も、連続してサンプリングした共通の1
200万個の乱数値(00h〜FFh(255d))に関す
るものである。図4は度数検定の結果を表わしており、
乱数値(横軸)とその発生度数(縦軸)をグラフ化したもの
である。全ての乱数値について一様な発生頻度が得られ
ていることがわかる。
【0033】図5は、間隔検定結果の一例として、乱数
値00についての発生間隔(横軸)とその発生度数(縦軸)
をグラフ化したものである。発生間隔が長くなるほど、
その発生頻度は直線状に減少していることがわかる。
【0034】連検定は同一の乱数値がいくつ連なるかを
調べるものであって、一例として図6は、乱数値00に
ついての連の数(横軸)とその発生度数(縦軸)をグラフ化
したものである。乱数値00については6個以上の連が
ないことがわかる。
【0035】更に時系列検定は、乱数値の発生頻度が時
間に依存するかいなかを検定するものであって、一例と
して図7は、乱数値00についての時間(横軸)とその発
生頻度(縦軸)をグラフ化したものである。乱数値00に
関しては、その発生頻度は時間に依存していないことが
わかる。上述の如く、何れの検定においても良好な結果
が得られており、本発明の効果が裏付けられる。
【0036】上記実施例の説明は、本発明を説明するた
めのものであって、特許請求の範囲に記載の発明を限定
し、或は範囲を減縮する様に解すべきではない。又、本
発明の各部構成は上記実施例に限らず、特許請求の範囲
に記載の技術的範囲内で種々の変形が可能であることは
勿論である。
【図面の簡単な説明】
【図1】本発明に係る乱数生成ICの回路構成を示すブ
ロック図である。
【図2】乱数生成ICの回路動作を示すタイムチャート
である。
【図3】乱数生成IC内部の各データの推移を表わす図
表である。
【図4】度数検定の結果を表わすグラフである。
【図5】間隔検定の結果を表わすグラフである。
【図6】連検定の結果を表わすグラフである。
【図7】時系列検定の結果を表わすグラフである。
【符号の説明】
(1) タイミング制御回路 (2) 定数設定回路 (3) レジスタ回路 (4) 演算回路 (5) 外部インタフェース

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 混合合同法に基づく演算式を用いて乱数
    を繰り返し算出する演算回路と、演算回路から得られる
    乱数列の内、過去2回の乱数算出結果を以て、前記演算
    式に含まれる乗算及び加算に用いる2つの定数を更新
    定する定数設定回路とを具え、定数設定回路に設定され
    ている2つの定数が演算回路に供給されることを特徴と
    する乱数生成回路。
  2. 【請求項2】 演算回路は、外部からの乱数値の読出し
    要求の有無に拘わらず、一定周期で乱数の算出を繰り返
    し、外部からの乱数値の読出し要求が発生する度に、そ
    の時点で得られる乱数値を出力する請求項1に記載の乱
    数生成回路。
  3. 【請求項3】 外部からの乱数値の読出し要求が発生す
    る度に、定数設定回路に設定されている2つの定数を取
    り込んで演算回路に供給するレジスタ回路を具えている
    請求項1又は請求項2に記載の乱数生成回路。
JP6282914A 1994-10-20 1994-10-20 乱数生成回路 Expired - Fee Related JP2603809B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6282914A JP2603809B2 (ja) 1994-10-20 1994-10-20 乱数生成回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6282914A JP2603809B2 (ja) 1994-10-20 1994-10-20 乱数生成回路

Publications (2)

Publication Number Publication Date
JPH08123669A JPH08123669A (ja) 1996-05-17
JP2603809B2 true JP2603809B2 (ja) 1997-04-23

Family

ID=17658753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6282914A Expired - Fee Related JP2603809B2 (ja) 1994-10-20 1994-10-20 乱数生成回路

Country Status (1)

Country Link
JP (1) JP2603809B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001016196A (ja) * 1999-04-28 2001-01-19 Fuji Soft Abc Inc 多重アファイン鍵を用いる暗号化・復号化方法、認証方法、及びこれを用いる各装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58114134A (ja) * 1981-12-28 1983-07-07 Hitachi Electronics Eng Co Ltd 乱数発生器
JPH04267433A (ja) * 1991-02-22 1992-09-24 Nec Ic Microcomput Syst Ltd 乱数発生回路

Also Published As

Publication number Publication date
JPH08123669A (ja) 1996-05-17

Similar Documents

Publication Publication Date Title
US3706941A (en) Random number generator
US4691291A (en) Random sequence generators
US6862605B2 (en) True random number generator and entropy calculation device and method
US7797361B2 (en) System and method for generating random numbers using parity feedback
US7205800B2 (en) Clock frequency divider circuit
JP3696209B2 (ja) シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器
US8588412B2 (en) Mechanism for generating pseudorandom number sequences
US5706029A (en) Apparatus and method for retrieving data from a joystick
JPH053032B2 (ja)
JPH0818550A (ja) 符号系列発生器
JP3276852B2 (ja) 符号変換回路
JP2603809B2 (ja) 乱数生成回路
JP6301079B2 (ja) 波形生成回路及び波形生成シーケンス制御方法
JPH09101878A (ja) 乱数発生回路
JP3446742B2 (ja) 乱数発生装置および確率発生装置
SU1405056A1 (ru) Генератор случайных чисел
US20010007990A1 (en) Polynomial coefficient generator
JP2848734B2 (ja) 誤り検出・訂正装置
SU903873A1 (ru) Генератор случайных чисел моделировани генеральной совокупности по объектам выборочной совокупности
US5767706A (en) Rate generator
SU1529218A1 (ru) Генератор псевдослучайных чисел
US5615141A (en) Multiplying apparatus
JPH09261015A (ja) 周波数可変のパルス波形発生回路
GB2124817A (en) Electronic musical instrument
JP3514020B2 (ja) レート発生器

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees