擬似乱数(ぎじらんすう、')は、乱数列のように見えるが、実際には確定的な計算によって求めている擬似乱数列による乱数。擬似乱数列を生成する機器を擬似乱数列生成器、生成アルゴリズムを擬似乱数列生成法と呼ぶ。真の乱数列は本来規則性も再現性も無いものであり、その定義から、確定的な計算によって求めることはできない(例:サイコロを振る時、今までに出た目から次に出る目を予測するのは不可能)。一方、擬似乱数列は確定的な計算によって作るので、その数列は確定的である。また、生成法と内部状態が既知であれば、予測可能でもある。ある擬似乱数列を、真の乱数列とみなして良いかを確実に決定することはできない。一般に、さまざまな主として統計的な性質が、真の乱数列のそれと同じ(見分けがつかない)かどうかで、その乱数列の使用目的に適しているか否かを判断する。これを検定と言い、各種の検定法が提案されている。ただし、特に暗号に関する擬似乱数列については、他の用途とは異なる注意が必要である。一般に、一般のシミュレーション等には十分な性能を持った擬似乱数列生成法であっても、暗号の応用には不適であり、そのまま使用してはならない。暗号で使用する擬似乱数列については暗号論的擬似乱数の節および暗号論的擬似乱数生成器の記事を参照。シミュレーション実験や、(暗号論的擬似乱数は)暗号などに利用されている。物理乱数よりも手軽に扱え、また、初期化に同じシード値を使用することで、まったく同じ乱数列を生成できるため、実験の再現ができるというメリットがある。逆に、再現性を利用して、シード値の選択を意図的(不正に)に行う可能性を排除することが必要な場合もある(楕円曲線暗号のパラメータ生成など)。様々な擬似乱数生成法が知られている。もっとも古い手法で、1946年頃、ノイマンが提案した。TAOCPの新しい訳本では二乗中抜き法と呼んでいる。まず、適当に初期値を決める。以下、その(乱)数を 2 乗した値の中央にある必要な桁数を採って次の乱数とする。これを繰り返して乱数列とする方法。ここで「中央」とは、求まった値を必要な桁数の 2 倍の桁数として見た時の中央である。たとえば、4 桁を必要としていて、求まった値が 7 桁の時は、最上位の前の位(千万の位)に「0」を付け足して 8 桁とする(下の例を参照)。(例)4 桁の擬似乱数を作ってみる。初期値を1763とする。こうして、擬似乱数列 {1763, 1081, 1685, 8392, 4256, 1135, …} を得る。計算の結果、過去に現れた数と同じ数が現れればループとなり、その長さを周期と言うが、線形合同法を使えば周期が最長のものが理論的に可能であるため、現代において平方採中法が利用されることはまずない。線形合同法のにおいて、B=0 の場合を区別して特に乗算合同法、B>0 の場合を区別して特に混合合同法と言うことがある。線形帰還シフトレジスタ (LFSR; Linear Feedback Shift Register) はデジタル回路を用いて容易に実装することができる。特性多項式を適切に選択することによって、等頻度性、無相関性及び周期が保障される。乱数としては最長周期を保障するM系列を使う。上記のような古典的擬似乱数生成法の欠点を改良するため、新しい擬似乱数生成法がいくつか考案されている。非線形微分方程式の解はカオスで、即ち初期値敏感性等の性質を持つ。これを漸化式として、カオス的な関数を得る。よく使われる関数にロジスティック写像やテント写像がある。ロジスティック写像#擬似乱数生成器を参照。一般の擬似乱数は、その方式と過去の出力が既知であれば、未来の出力を予測可能であるため、暗号の用途には不適(暗号学的に安全ではないと言う)である。暗号理論では擬似乱数(生成器)に明確な定義がある。すなわち、多項式時間の計算機が乱数列と識別不能な列を出力する機器のことを、暗号論的擬似乱数生成器と呼び、この列に含まれる数を暗号論的擬似乱数という。いかなる数列であれば乱数列であるか、議論のあるところではあるが、一様分布であることと過去の数から次の数が予測不能であることは同値であることが示されている(Yao)。そこで過去の数から次の数が予測不能であるかで、暗号論的擬似乱数か否かを区別する。暗号理論では擬似乱数に厳密な定義が与えられている。Σ = {0,1}とする。自然数 "k" に対し、Σ 上の一様分布を "U" と表す。確率変数の族 {"X"} が、一様分布の族 {"U"} と計算量的識別不能な時、族 {"X"} は暗号論的擬似乱数であるという。次に暗号論的擬似乱数生成器の厳密な定義をする。"l"("k") を "l"("k") > "k" を満たす多項式とする。"G" を多項式時間アルゴリズムで、"G" に "k" ビットのビット列を入力をすると "l"("k") ビットの出力を返すものとする。すると "G"("U") は Σ 上の確率分布である。確率分布の族 {"G"("U")} が暗号論的擬似乱数である時、多項式時間アルゴリズム "G" を暗号論的擬似乱数生成機という。一方向性関数が存在すれば暗号論的擬似乱数生成機が存在する事が知られている。実際の生成法としては、一般の擬似乱数列を暗号学的ハッシュ関数に通す、という、簡単な構成法がある。[CEDEC 2014]ナムコ作品で見る乱数の歴史。「ゲーム世界を動かすサイコロの正体 ~ 往年のナムコタイトルから学ぶ乱数の進化と応用」レポート 4Gamer.net
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。