(57)【特許請求の範囲】
【請求項１】
Ｄを所定の正の整数とし、ｉ＝１，…，Ｄとし、［ｈｉ］を確率変数ｘｉについての所定の取り得る範囲とし、穴［ｈ］を［ｈ］＝（［ｈ１］，…，［ｈＤ］）Ｔとして、Ｈを所定の基礎分布関数ｆ（ｘ１，…，ｘＤ）の穴［ｈ］における確率であるとし、α＝１／（１−Ｈ）とし、補正分布関数ｆ’（ｘ１，…，ｘＤ）は式（１），（２）により定義されるとし、ｆ’ｍａｘをｆ’（ｘ１，…，ｘＤ）の最大値として、
【数２９】
0006766183.tif 000030
乱数ｕ＝（ｕ１，…，ｕＤ）Ｔ∈［−∞，∞］Ｄを生成する第一乱数生成部と、
乱数ｖ∈［０，ｆ’ｍａｘ］を生成する第二乱数生成部と、
ｆ’（ｘ１＝ｕ１，…，ｘＤ＝ｕＤ）≧ｖであるか判定し、ｆ’（ｘ１＝ｕ１，…，ｘＤ＝ｕＤ）≧ｖであればｕをｆ’（ｘ１，…，ｘＤ）に従う乱数として採用する判定部と、
を含む乱数生成装置。
【請求項２】
Ｄを所定の正の整数とし、ｉ＝１，…，Ｄとし、［ｈｉ］を確率変数ｘｉについての所定の取り得る範囲とし、穴［ｈ］を［ｈ］＝（［ｈ１］，…，［ｈＤ］）Ｔとして、Ｈを所定の基礎分布関数ｆ（ｘ１，…，ｘＤ）の穴［ｈ］における確率であるとし、α＝１／（１−Ｈ）とし、補正分布関数ｆ’（ｘ１，…，ｘＤ）は式（１），（２）により定義されるとして、
【数３０】
0006766183.tif 000031
ｆ’（ｘｉ）をｆ’（ｘ１，…，ｘＤ）のｘｉに関する周辺分布とし、Ｆ（ｔｉ）を式（２’）により定義される関数とし、Ｆ−１（ｔｉ）をＦ（ｔｉ）の逆関数として、乱数ｕｉ∈［０，１］を生成し、生成されたｕｉを用いてｆ’（ｘｉ）に従う乱数ｒｉ＝Ｆ−１（ｕｉ）を得て、ｘｉ＝ｒｉとする処理をｉ＝１，…，Ｄのそれぞれについて行うことにより、ｒ＝（ｒ１，…，ｒＤ）Ｔを最終的に得る演算部と、
【数３１】
0006766183.tif 000032
を含む乱数生成装置。
【請求項３】
請求項１又は２の乱数生成装置において、
Ｄ＝２とし、Ｎを所定の正の整数とし、確率変数ｘｉについての所定の取り得る範囲［ｈｉ］がＮ個あるとし、それらのＮ個の所定の取り得る範囲を｛［ｈｉ］｝ｉ＝１Ｎ＝｛（［ｈ１］ｉ，［ｈ２］ｉ）Ｔ｝ｉ＝１Ｎ＝｛（［（ｓ１）ｉ，（ｅ１）ｉ］，［（ｓ２）ｉ，（ｅ２）ｉ］）Ｔ｝ｉ＝１Ｎとし、（μｘ１，２σｘ１２），（μｘ２，２σｘ２２）を所定のパラメータとし、上記基礎分布関数ｆ（ｘ１，…，ｘＤ）を式（３）により定義されるＬａｐ（ｘ１，ｘ２）とし、ｓｉｇｎ（ａ）を入力ａの符号｛＋，−｝を出力する関数とし、ｓ≦ｅに対して関数ｇ（ｓ，ｅ）は式（５），（６）により定義されるとし、上記Ｈは式（４）により定義されるとして、上記補正分布関数ｆ’は式（７），（８）により定義されるＬａｐ’（ｘ１，ｘ２）である、
【数３２】
0006766183.tif 000033
【数３３】
0006766183.tif 000034
【数３４】
0006766183.tif 000035
【数３５】
0006766183.tif 000036
乱数生成装置。
【請求項４】
請求項２の乱数生成装置において、
Ｄ＝２とし、上記確率変数ｘｉについての所定の取り得る範囲［ｈｉ］を［ｈ１］＝（［ｈ１］ｉ，［ｈ２］ｉ）Ｔ＝（［ａ，ｂ］，［ｃ，ｄ］）Ｔとし、（μｘ１，２σｘ１２），（μｘ２，２σｘ２２）を所定のパラメータとし、第一領域Ｓ１を（ｘ１≧μｘ１）∧（ｘ２≧μｘ２）とし、第二領域Ｓ２を（ｘ１≦μｘ１）∧（ｘ２≧μｘ２）とし、第三領域Ｓ３を（ｘ１≧μｘ１）∧（ｘ２≦μｘ２）とし、第四領域Ｓ４を（ｘ１≦μｘ１）∧（ｘ２≦μｘ２）として、上記穴［ｈ］が上記第一領域Ｓ１又は上記第二領域Ｓ２にある場合には上記補正分布関数ｆ’は式（９），（１０）により定義されるＬａｐ’（ｘ１）であり、上記穴［ｈ］が上記第三領域Ｓ３又は上記第四領域Ｓ４にある場合には上記補正分布関数ｆ’は式（１１），（１２）により定義されるＬａｐ’（ｘ１）である、
【数３６】
0006766183.tif 000037
乱数生成装置。
【請求項５】
Ｄを所定の正の整数とし、ｉ＝１，…，Ｄとし、［ｈｉ］を確率変数ｘｉについての所定の取り得る範囲とし、穴［ｈ］を［ｈ］＝（［ｈ１］，…，［ｈＤ］）Ｔとして、Ｈを所定の基礎分布関数ｆ（ｘ１，…，ｘＤ）の穴［ｈ］における確率であるとし、α＝１／（１−Ｈ）とし、補正分布関数ｆ’（ｘ１，…，ｘＤ）は式（１），（２）により定義されるとし、ｆ’ｍａｘをｆ’（ｘ１，…，ｘＤ）の最大値として、
【数３７】
0006766183.tif 000038
第一乱数生成部が、乱数ｕ＝（ｕ１，…，ｕＤ）Ｔ∈［−∞，∞］Ｄを生成する第一乱数生成ステップと、
第二乱数生成部が、乱数ｖ∈［０，ｆ’ｍａｘ］を生成する第二乱数生成ステップと、
判定部が、ｆ’（ｘ１＝ｕ１，…，ｘＤ＝ｕＤ）≧ｖであるか判定し、ｆ’（ｘ１＝ｕ１，…，ｘＤ＝ｕＤ）≧ｖであればｕをｆ’（ｘ１，…，ｘＤ）に従う乱数として採用する判定ステップと、
を含む乱数生成方法。
【請求項６】
Ｄを所定の正の整数とし、ｉ＝１，…，Ｄとし、［ｈｉ］を確率変数ｘｉについての所定の取り得る範囲とし、穴［ｈ］を［ｈ］＝（［ｈ１］，…，［ｈＤ］）Ｔとして、Ｈを所定の基礎分布関数ｆ（ｘ１，…，ｘＤ）の穴［ｈ］における確率であるとし、α＝１／（１−Ｈ）とし、補正分布関数ｆ’（ｘ１，…，ｘＤ）は式（１），（２）により定義されるとして、
【数３８】
0006766183.tif 000039
演算部が、ｆ’（ｘｉ）をｆ’（ｘ１，…，ｘＤ）のｘｉに関する周辺分布とし、Ｆ（ｔｉ）を式（２’）により定義される関数とし、Ｆ−１（ｔｉ）をＦ（ｔｉ）の逆関数として、乱数ｕｉ∈［０，１］を生成し、生成されたｕｉを用いてｆ’（ｘｉ）に従う乱数ｒｉ＝Ｆ−１（ｕｉ）を得て、ｘｉ＝ｒｉとする処理をｉ＝１，…，Ｄのそれぞれについて行うことにより、ｒ＝（ｒ１，…，ｒＤ）Ｔを最終的に得る演算ステップと、
【数３９】
0006766183.tif 000040
を含む乱数生成方法。
【請求項７】
請求項１から４の何れかの乱数生成装置の各部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、乱数を生成する技術に関する。
【背景技術】
【０００２】
従来、プライバシー保護技術の一つである匿名化（例えば、非特許文献１，２，３，４，５)にて用いられるノイズ加算方法として特許文献１が知られている。
【０００３】
上記特許文献における課題は、任意の次元から成る任意の確率分布に従う乱数を生成することである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−０８１５４５号公報
【非特許文献】
【０００５】
【非特許文献１】五十嵐大, 千田浩司, 高橋克巳, "多値属性に適用可能な効率的プライバシー保護クロス集計",情報処理学会シンポジウム論文集, 2008巻, 8第一分冊, pp.497-502, 2008年10月8日.
【非特許文献２】五十嵐大, 千田浩司, 高橋克巳, "k-匿名性の確率的指標への拡張とその適用例", CSS2009, 2009巻, pp.1-6, oct 2009.
【非特許文献３】五十嵐大, 千田浩司, 高橋克巳, "数値属性における，k-匿名性を満たすランダム化手法", CSS2011, 2011巻, 3, pp.450-455, 2011年10月12日.
【非特許文献４】五十嵐大, 長谷川聡, 納竜也, 菊池亮, 千田浩司, "数値属性に適用可能な, ランダム化によりk-匿名性を保証するプライバシー保護クロス集計", CSS2012, 2012巻, 3, pp.639-646, 2012年10月23年.
【非特許文献５】菊池亮, 五十嵐大, 千田浩司, 濱田浩気, "データ分布依存処理によって高い有用性を実現する確率的k-匿名化", SCIS2013.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
データベースにおけるパーソナルデータのプライバシーを保護する方法の１つに匿名化がある。
【０００７】
数値属性に対して匿名化を施すためには、ラプラス分布と呼ばれる確率分布に従う乱数用いて各属性値を他の属性値に遷移させる匿名化方法（非特許文献２，３，４）を用いることがある。数値属性のパーソナルデータの例として、人の位置情報（緯度・経度）の例を考える。海の航路でない領域に人がいることはほぼあり得ないにも関わらず、匿名化によってその領域に人がいることになってしまう場合がある。
【０００８】
数値属性ではないカテゴリ属性と呼ばれる離散の属性に対して匿名化を施すためには、確率ρで他の属性値に遷移させる匿名化方法（非特許文献１，５）を用いることがある。カテゴリ属性の例として、人の購買情報の例を考える。日本において高校生価格の映画チケットとお酒を購入する人はあり得ないにも関わらず、匿名化によってそのカテゴリ領域に属す人がいることになってしまう場合がある。
【０００９】
数値属性やカテゴリ属性においてこのような状態遷移が起こる理由は、そのあり得ない領域に含まれる乱数が生成されるからである。
【００１０】
このようなあり得ない状態遷移を防ぐために、任意の次元から成り、あり得ない領域での確率がゼロである多次元確率分布に従う乱数を生成することが必要であるが、そのような乱数の生成手法はこれまで提案されていない。
【００１１】
この発明は、所定の領域での確率がゼロである多次元確率分布に従う乱数を生成する乱数生成装置、方法及びプログラムを提供することである。
【課題を解決するための手段】
【００１２】
この発明の一態様による乱数生成装置は、Dを所定の正の整数とし、i=1,…,Dとし、[hi]を確率変数xiについての所定の取り得る範囲とし、穴[h]を[h]=([h1],…,[hD])Tとして、Hを所定の基礎分布関数f(x1,…,xD)の穴[h]における確率であるとし、α=1/(1-H)とし、補正分布関数f'(x1,…,xD)は式(1),(2)により定義されるとし、f'maxをf'(x1,…,xD)の最大値として、
【００１３】
【数１】
0006766183.tif 000002
【００１４】
乱数u=(u1,…,uD)T∈[-∞,∞]Dを生成する第一乱数生成部と、乱数v∈[0,f'max]を生成する第二乱数生成部と、f'(x1=u1,…,xD=uD)≧vであるか判定し、f'(x1=u1,…,xD=uD)≧vであればuをf'(x1,…,xD)に従う乱数として採用する判定部と、を備えている。
【００１５】
この発明の他の態様による乱数生成装置は、Dを所定の正の整数とし、i=1,…,Dとし、[hi]を確率変数xiについての所定の取り得る範囲とし、穴[h]を[h]=([h1],…,[hD])Tとして、Hを所定の基礎分布関数f(x1,…,xD)の穴[h]における確率であるとし、α=1/(1-H)とし、補正分布関数f'(x1,…,xD)は式(1),(2)により定義されるとして、
【００１６】
【数２】
0006766183.tif 000003
【００１７】
f'(xi)をf'(x1,…,xD)のxiに関する周辺分布とし、F(ti)を式(2')により定義される関数とし、F-1(ti)をF(ti)の逆関数として、乱数ui∈[0,1]を生成し、生成されたuiを用いてf'(xi)に従う乱数ri=F-1(ui)を得て、xi=riとする処理をi=1,…,Dのそれぞれについて行うことにより、r=(r1,…,rD)Tを最終的に得る演算部と、を備えている。
【００１８】
【数３】
0006766183.tif 000004
【発明の効果】
【００１９】
所定の領域での確率がゼロである多次元確率分布に従う乱数を生成することができる。
【図面の簡単な説明】
【００２０】
【図１】第一実施形態の乱数生成装置の例を説明するためのブロック図。
【図２】第一実施形態の乱数生成方法の例を説明するための流れ図。
【図３】従来技術を説明するための図。
【図４】第二実施形態の乱数生成装置の例を説明するためのブロック図。
【図５】第二実施形態の乱数生成方法の例を説明するための流れ図。
【図６】具体例１を説明するための図。
【図７】具体例２を説明するための図。
【発明を実施するための形態】
【００２１】
以下、図面を参照して、この発明の一実施形態について説明する。
【００２２】
以降では、あり得ない領域に含まれる乱数を生成する分布関数を基礎分布関数f(x1,…,xD)、あり得ない領域に含まれる乱数を生成しない分布関数を補正分布関数f'(x1,…,xD)と呼ぶ。∀D∈N+＼{0}である。言い換えれば、Dは、所定の正の整数である。
【００２３】
また、あり得ない確率変数の領域を「穴」と呼び、穴の領域は例えば以下のようにパラメータとして与えられるとする。
【００２４】
穴[h]=([h1],…,[hD])Tは、D次元空間において超立方体であり、各[hi]は確率変数xiの範囲[si,ei]とする。
【００２５】
この発明は、D次元の任意の確率分布関数f(x1,…,xD)に従う乱数r∈RDを生成するものである。この発明の処理は、直感的には、関数f(x1,…,xD)をD個の一次元確率分布関数として表現し、D回に分けて逐次的に乱数ri∈Rを生成し、最終的にriの組であるr=(r1,…,rD)Tを得るというものである。
【００２６】
［第一実施形態］
第一実施形態の乱数生成装置は、図１に示すように、第一乱数生成部２、第二乱数生成部３及び判定部４を例えば備えている。乱数生成装置は、図１に破線で示す関数生成部１を更に備えていてもよい。
【００２７】
第一実施形態の乱数生成方法は、乱数生成装置の各部が図２及び以下に説明するステップＳ２からステップＳ４の処理を行うことにより例えば実現される。
【００２８】
以下、基礎分布関数fを所与のものとして、第一実施形態の乱数r∈RDの生成手順を示す。この手順では棄却法のテクニックが用いられる。以下では、補正分布関数f'の最大値をf'maxと表す。
【００２９】
乱数生成装置は、基礎分布関数f及び穴[h]を入力として、D次元乱数r=(r1,…,rD)Tを出力する。
【００３０】
基礎分布関数f(x1,…,xD)の穴[h]における確率Hは、以下のように定義されるとする。
【００３１】
【数４】
0006766183.tif 000005
【００３２】
このとき、α=1/(1-H)として、補正分布関数f'(x1,…,xD)は式(1),(2)により定義されるとする。
【００３３】
【数５】
0006766183.tif 000006
【００３４】
乱数生成装置は、確率H及び補正分布関数f'(x1,…,xD)を計算する関数生成部１を例えば備えており、これ以降の処理を行う前に、関数生成部１が確率H及び補正分布関数f'(x1,…,xD)を予め計算しておく（ステップＳ１）。なお、乱数生成装置は、関数生成部１を備えていなくてもよい。この場合には、乱数生成装置は、これ以降の処理に、確率H及び補正分布関数f'(x1,…,xD)として予め他の装置により計算されたものを用いる。
【００３５】
第一乱数生成部２は、乱数u=(u1,…,uD)T∈[-∞,∞]Dを生成する（ステップＳ２）。第一乱数生成部２は、乱数uとして、例えば一様乱数u=(u1,…,uD)T∈[-∞,∞]Dを生成する。生成された乱数uは、判定部４に出力される。
【００３６】
第二乱数生成部３は、乱数v∈[0,f'max]を生成する（ステップＳ３）。第二乱数生成部３は、乱数vとして、一様乱数v∈[0,f'max]を生成する。生成された乱数vは、判定部４に出力される。
【００３７】
判定部４は、f'(x1=u1,…,xD=uD)≧vであるか判定し、f'(x1=u1,…,xD=uD)≧vであれば乱数uをf'(x1,…,xD)に従う乱数として採用し、この乱数uを出力する（ステップＳ４）。
【００３８】
判定部４は、f'(x1=u1,…,xD=uD)＜vであれば、第一乱数生成部２及び第二乱数生成部３にそれぞれステップＳ２及びステップＳ３の処理を再度行わせる。言い換えれば、判定部４は、f'(x1=u1,…,xD=uD)≧vとなるまで、第一乱数生成部２及び第二乱数生成部３にそれぞれステップＳ２及びステップＳ３の処理を行わせる。
【００３９】
以上の処理により、所定の領域である穴[h]での確率がゼロである多次元確率分布に従う多次元の乱数が生成できる、また、多次元確率分布の式さえ得ることができれば、あり得ない領域での確率がゼロである多次元確率分布に限らず、乱数は任意の確率分布から生成可能である。
【００４０】
例えば、この乱数生成手法を用いることにより、複数の属性を持つパーソナルデータを含むデータベースに対する匿名化を行う際に、現実社会においてあり得ないパーソナルデータが生成されなくなる。
【００４１】
匿名化を行いたいデータベース内の属性は必ずしも独立ではなく、互いに依存し合うことがある。非特許文献１ではデータベース内の属性が独立であるときのみ適用可能であり、互いに依存し合う属性がある多次元の確率分布においては自明に拡張することが出来ない。このことを図で示すと、図３となる。図３（ａ）は斜視図であり、図３（ｂ）は上から見た図である。図３により、あり得る領域まで遷移を防ぐことになってしまい、今回達成したいこととは異なる。これを解決するために、同時確率分布を仮定し、そこから穴の空いている確率分布を用いることがポイントの１つである。もちろん、この乱数生成手法は、任意の確率分布において適応可能であるため、匿名化以外のプライバシー保護に用いることもできる。
【００４２】
［第二実施形態］
以下、第一実施形態の手順よりも、処理速度が高速な乱数r∈RDの生成手順を示す。この手順では逆関数法のテクニックが用いられる。
【００４３】
第二実施形態の乱数生成装置は、図４に示すように、演算部５を例えば備えている。乱数生成装置は、図４に破線で示す関数生成部１を更に備えていてもよい。
【００４４】
第二実施形態の乱数生成方法は、乱数生成装置の各部が図５及び以下に説明するステップＳ５の処理を行うことにより例えば実現される。
【００４５】
乱数生成装置は、基礎分布関数f及び穴[h]を入力として、D次元乱数r=(r1,…,rD)Tを出力する。
【００４６】
基礎分布関数f(x1,…,xD)の穴[h]における確率Hは、以下のように定義されるとする。
【００４７】
【数６】
0006766183.tif 000007
【００４８】
このとき、α=1/(1-H)として、補正分布関数f'(x1,…,xD)は式(1),(2)により定義されるとする。
【００４９】
【数７】
0006766183.tif 000008
【００５０】
乱数生成装置は、確率H及び補正分布関数f'(x1,…,xD)を計算する関数生成部１を例えば備えていており、これ以降の処理を行う前に、関数生成部１が確率H及び補正分布関数f'(x1,…,xD)を予め計算しておく（ステップＳ１）。なお、乱数生成装置は、関数生成部１を備えていなくてもよい。この場合には、乱数生成装置は、これ以降の処理に、確率H及び補正分布関数f'(x1,…,xD)として予め他の装置により計算されたものを用いる。
【００５１】
演算部５は、f'(xi)をf'(x1,…,xD)のxiに関する周辺分布とし、F(ti)を式(2')により定義される関数とし、F-1(ti)をF(ti)の逆関数として、乱数ui∈[0,1]を生成し、生成されたuiを用いてf'(xi)に従う乱数ri=F-1(ui)を得て、xi=riとする処理をi=1,…,Dのそれぞれについて行うことにより、r=(r1,…,rD)Tを最終的に得る（ステップＳ５）。
【００５２】
【数８】
0006766183.tif 000009
【００５３】
ステップＳ５を行うために、演算部５は、以下のステップＳ５０からステップＳ５７の処理を行ってもよい。
【００５４】
例えば、演算部５は、まず、i=1として（ステップＳ５０）、f'(x1,x2,…,xD)のx1に関する周辺分布f'(x1)を導出する（ステップＳ５１）。
【００５５】
【数９】
0006766183.tif 000010
【００５６】
そして、演算部５は、 累積密度関数F(t1)を導出する（ステップＳ５２）。
【００５７】
【数１０】
0006766183.tif 000011
【００５８】
そして、演算部５は、F(t1)の逆関数であるF-1(t1)を導出する（ステップＳ５３）。
【００５９】
そして、演算部５は、乱数u1∈[0,1]を生成する（ステップＳ５４）。演算部５は、乱数u1として、例えば一様乱数u1∈[0,1]を生成する。
【００６０】
そして、演算部５は、生成されたu1を用いてf'(x1)に従う乱数r1=F-1(u1)を得る（ステップＳ５５）。すなわち、演算部５は、生成されたu1をF-1(t1)に入力した場合の出力値を計算し、その出力値をr1とする。
【００６１】
そして、演算部５は、f'(x1,…,xD)のx1にr1を代入し，f'(x2,…,xD|x1=r1)とする（ステップＳ５６）。
【００６２】
そして、演算部５は、整数∀i∈[2,D]において、上記ステップＳ５１からステップＳ５６と同様の操作をf'(xi,…,xD|x1=r1,…,xi-1=ri-1)に対して行い、r=(r1,…,rD)Tを得る（ステップＳ５７）。
【００６３】
このようにして、多次元の確率分布を一次元の周辺分布化し、逐次的に逆関数法を用いて乱数を生成してもよい。
【００６４】
乱数の生成手順は第一実施形態とは異なるが、第二実施形態によっても第一実施形態と同様に、所定の領域である穴[h]での確率がゼロである多次元確率分布に従う乱数を生成することができる。
【００６５】
［具体例１］
以下、D=2の場合の補正分布関数f'の例について説明する。
【００６６】
ここで、Nを所定の正の整数とし、確率変数xiについての所定の取り得る範囲[hi]はN個あるとする。そして、それらのN個の所定の取り得る範囲を{[hi]}i=1N={([h1]i,[h2]i)T}i=1N={([(s1)i,(e1)i],[(s2)i,(e2)i])T}i=1Nとする。このように、穴の数はN個であるとする。
【００６７】
また、(μx1,2σx12),(μx2,2σx22)を所定のパラメータとして、基礎分布関数f(x1,…,xD)を式(3)により定義されるラプラス分布Lap(x1,x2)とする。ラプラス分布Lap(x1,x2)を、図６に示す。図６（ａ）は斜視図であり、図６（ｂ）は上から見た図である。
【００６８】
【数１１】
0006766183.tif 000012
【００６９】
また、sign(a)を入力aの符号{+,-}を出力する関数とし、s≦eに対して関数g(s,e)は式(5),(6)により定義されるとし、Hは式(4)により定義されるとすると、補正分布関数f'は式(7),(8)により定義されるLap'(x1,x2)となる。
【００７０】
【数１２】
0006766183.tif 000013
【００７１】
【数１３】
0006766183.tif 000014
【００７２】
【数１４】
0006766183.tif 000015
【００７３】
［具体例２］
ここでは、第二実施形態のステップＳ５０からステップＳ５６の処理の例について説明する。
【００７４】
補正分布関数f'は、図７に示す穴[h]が１つであるLap'(x1,x2)であるとする。図７（ａ）は斜視図であり、図７（ｂ）は上から見た図である。図７に示すように、具体例２では[h]の数は１個であり、[h]=([h1],[h2])=([(a),(b)],[(c),(d)])であるとする。
【００７５】
ここで、第一領域S1を(x1≧μx1)∧(x2≧μx2)とし、第二領域S2を(x1≦μx1)∧(x2≧μx2)とし、第三領域S3を(x1≧μx1)∧(x2≦μx2)とし、第四領域S4を(x1≦μx1)∧(x2≦μx2)とする。
【００７６】
まず、乱数r1を得るために、x1に関する周辺分布を考える。
【００７７】
１．穴[h]が第一領域S1又は第二領域S2にある場合には、補正分布関数f'は、式(9),(10)により定義されるLap'(x1)となる。
【００７８】
【数１５】
0006766183.tif 000016
【００７９】
２．一方、穴[h]が上記第三領域S3又は上記第四領域S4にある場合には、補正分布関数f'は式(11),(12)により定義されるLap'(x1)となる。
【００８０】
【数１６】
0006766183.tif 000017
【００８１】
穴が領域を跨いで存在する場合は，上記の場合分け１．と２．を組み合わせれば良い。次に、乱数r1を生成するために、累積密度関数
【００８２】
【数１７】
0006766183.tif 000018
【００８３】
から、式(13)，式(14)，式(15)，式(16) に示す逆関数を導出する。同様の手順を用いることによって他の領域においても逆関数が導けるため、ここでは穴が第一領域にあるときのみ記す。
【００８４】
以降では、
【００８５】
【数１８】
0006766183.tif 000019
【００８６】
とする。
【００８７】
i) -∞≦t1≦μx1のとき
【００８８】
【数１９】
0006766183.tif 000020
【００８９】
ii) μx1≦t1≦aのとき
【００９０】
【数２０】
0006766183.tif 000021
【００９１】
iii) a≦t1≦b のとき
【００９２】
【数２１】
0006766183.tif 000022
【００９３】
iv) b≦t1のとき
【００９４】
【数２２】
0006766183.tif 000023
【００９５】
式(13)，式(14)，式(15)，式(16)のF(t1)に一様分布U[0,1]に従うu1∈[0,1]を代入することによって、式(9)，式(10)に従う乱数r1=t1が生成される。x1=r1のときの確率密度関数Lap'(x2|x1=r1)は次のようになる。
【００９６】
【数２３】
0006766183.tif 000024
【００９７】
γは、以下の式により定義されるとする。
【００９８】
【数２４】
0006766183.tif 000025
【００９９】
このとき、乱数r2を生成するために、累積密度関数
【０１００】
【数２５】
0006766183.tif 000026
【０１０１】
から式(19)，式(20)，式(21) に示す逆関数を導出する。
【０１０２】
i) -∞≦t2≦μx2のとき
【０１０３】
【数２６】
0006766183.tif 000027
【０１０４】
ii) μx2≦t2≦cのとき
【０１０５】
【数２７】
0006766183.tif 000028
【０１０６】
iii) c≦t2≦dのときF(t2)はt2に依らずに決まるため、このときは逆関数は存在しない。つまり、この範囲の乱数は生成されない。
【０１０７】
iv) d≦t2のとき
【０１０８】
【数２８】
0006766183.tif 000029
【０１０９】
式(19)，式(20)，式(21)のF(t2)に一様分布U[0,1]に従うu2∈[0,1]を代入することによって、式(17)，式(18)に従う乱数r2=t2を生成する。このようにして、r=(r1,r2)Tを生成する。
【０１１０】
[プログラム及び記録媒体]
乱数生成装置における各処理をコンピュータによって実現する場合、乱数生成装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、乱数生成装置の処理がコンピュータ上で実現される。
【０１１１】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【０１１２】
また、各処理手段は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【０１１３】
[変形例]
その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【図１】
0006766183.tif 000041
【図２】
0006766183.tif 000042
【図３】
0006766183.tif 000043
【図４】
0006766183.tif 000044
【図５】
0006766183.tif 000045
【図６】
0006766183.tif 000046
【図７】
0006766183.tif 000047