携帯キャンペーン屋さん 販売代理店募集 ケータイキャンペーン屋さんトップ


日頃より「ケータイキャンペーン屋さん」をご利用いただき、誠にありがとうございます。

ネットサーチ株式会社の運営するQstage、ケータイキャンペーン屋さんなどの全てのサービス提供は終了いたしました。
長年にわたりご愛顧いただきましたお客様に、心より感謝申し上げます。

何卒ご理解・ご了承を賜りますようお願い申し上げます。
基礎知識
乱数(ランダムナンバー)の種類と生成方法
あなたもランダムナンバーを作ってみませんか?

乱数の種類・・・
「乱数」(random number)とは『出現する値に規則性のない数。出現する数の統計的な特徴により、一様乱数・正規乱数などの種類がある。通常、コンピューターでは、完全な乱数ではなく、必要な範囲内で乱数とみなせる擬似乱数を用いる』(三省堂「大辞林第二版」)とあります。

ここでは、その種類と生成方法について紹介いたします。
具体的な算出方法も紹介していますので、ランダムナンバーの生成にチャレンジしてみてください。

  • 〔2進乱数〕
    2進乱数とは、「0」と「1」(あるいは「-1」と「1」)がランダムに現れるような乱数。
    ストリーム暗号やスペクトラム拡散通信に用いられます。
    コンピューターでは、複数ビットの乱数を生成するような関数から1ビット単位で切り出して生成します。
  • 〔自然乱数〕
    自然乱数とは、自然数がランダムに現れるような乱数で「0」を含むことが多い。
    「0」以上「無限大」まで全ての自然数を用いた自然乱数が考えられますが、実際上は最大の自然数を決めて、それ以下の範囲で考えることが多い。
    コンピューターでは、最大値をもつ自然乱数を発生させる関数が用意されていて、これを加工することでいろいろな乱数を作り出すことができます。
  • 〔一様乱数〕
    一様乱数とは、ある有限の区間を区切って、その区間内で全ての実数が同じ確率(濃度)で現れるような乱数。
    コンピューターでは、最大値を持つ自然乱数列を発生させて、それを最大値で割ることで〔0,1〕(0以上1以下)の一様乱数が得られます。
    また、「最大値+1」で割ることで〔0、1)(0以上1未満)の一様乱数が得られます。

    このようにして生成した一様乱数は、原理的に有理数のみで無理数は含まれないため、これは真の一様乱数ではありません。
    デジタルコンピューターの性質上、無理数を扱うことはできません。
  • 〔正規乱数〕
    正規乱数とは、正規分布を持つような乱数で、工学においてはホワイトノイズとして利用されます。

乱数の生成法・・・
乱数の発生手法には次の2種類があります。

  • 何らかのアルゴリズムで生成する擬似乱数
  • 物理現象から実験的に収集する物理乱数

擬似乱数は計算によって生成するので、作り方が分かれば理論的には予測可能であり、また内部の初期値(シード)が分かれば、先に計算しておくこともできます。
現在のコンピューター処理が当たり前の世の中では、「乱数=擬似乱数」と思ってよいでしょう。
コンピューターがなかった時代は、「乱数賽」(1~0の全ての数字が10分の1の確率で現れるように作られたサイコロ)や袋に入れた乱数カードを引き出す方式で生成していました。

物理乱数は、熱雑音とか原子核分裂など本質的にランダムな自然現象を利用する手法です。
しかし、測定が面倒だったり測定レベルで情報が偏ったりするため、現実にはあまり採用されていないようです。

  再現性 迅速性 信憑性
乱数賽 × ×
乱数表
物理乱数 ×
擬似乱数


主な擬似乱数生成法・・・
擬似乱数生成法は様々な手法が知られています。

  • 予測可能/再現性あり
    古典的生成法:平方採中法/混合合同法/線形帰還シフトレジスタ
    新しい生成法:メルセンヌ・ツイスタ/カオス乱数
  • 予測不能/再現性あり
    暗号学的に安全な生成法:BBS(Blum Blum Shub) /Fortuna
  • 予測不能/再現性なし
    ハードウェア乱数生成器:サイコロ
【古典的生成法】
  • 平方採中法
    フォン・ノイマン(VonNeumann)が考案した乱数生成法。
    初期値に適当な「a」を決めてそれを2乗します。求めた値の中央にある必要な桁数を採って乱数とし、それを2乗して求めた値の中央にある必要な桁数を採って次の乱数とします。これを繰り返して乱数列とする方法です。

    ここで言う「中央」とは、求めた値を必要な桁数の2倍の桁数として見たときの中央とします。
    例えば、4桁を必要としていて求めた値が7桁のときは、最上位の前の位(千万の位)に「0」を付け足して8桁とします。(次の計算例を参照)

    計算例:4桁の擬似乱数を作ってみます。
    但し最初は「a」=1763とします。

    1763×1763=03108169→1081
    1081×1081=01168561→1685
    1685×1685-02839225→8392
    8392×8392=70425664→4256

    こうして擬似乱数「1763・1081・1685・8392・・・・」を得ます。
  • 混合合同法
    下の計算式に適当な「a]「p」「q」を代入します(必要な桁数が採れれば何でもよい)。
    求めた値「a´」の中間あたりの必要な桁数を乱数として採用し、それを新たな「a」として再び計算式に代入します。

    計算式:ap+q=a´計算例:5桁の擬似乱数を作ってみます。
    但し最初は「a」=14992、「p」=673、「q」=944とします。

    14992×673+944=10090560→09056
    09056×673+944=06095632→09563
    09563×673+944=06436843→43684
    43684×673+944=29400276→40027

    こうして擬似乱数「14992・09056・09563・43684・・・・」を得ます。
  • 線形帰還シフトレジスタ
    デジタル回線を用いて容易に実装することができる擬似乱数の生成方式。
    特定多項式を適切に選択することによって、等頻度性、無相関性及び周期が保障されます。
    ただし、線形帰還シフトレジスタは容易に解析可能なため、そのまま暗号に使用することは推奨できません。
【新しい生成法】
  • メルセンヌ・ツイスタ
    1996年~98年に松本眞・西村拓士氏によって開発された擬似乱数生成器。
    既存の乱数生成アルゴリズムの欠点を改良して、高品質の乱数を高速に生成するように設計されています。
    07年に松本氏らによって改良版SFMTがホームページに発表され、現在、公式ホームページからダウンロードできるようになっています。
  • カオス乱数
    非線形微分方程式の解はカオスと呼ばれ、初期値敏感性などの特質を持っています。
    漸化式の形で記述することにより、カオス的な関数を得ることができるとされています。
    よく使われる関数にロジスティック関数やテント写像があります。

    厳密には有理式でなければランダムな関数とはならないため、コンピューターで実装した場合は必ずしも乱数性の優れた擬似乱数とはなりません。
    従って、カオス乱数の出力をそのままストリーム暗号の鍵ストリームとして用いる方法は安全とは言えません。

営業日カレンダー
カレンダーの赤字の日は休業と
させていただきます。
年間営業日カレンダーについては
コチラをご覧ください
Copyright(C)2009 Net Search Co.,Ltd All Right Reserved