けんのへや

工学院大学情報学部情報通信工学科 先進ネットワークシステム研究室のブログです

乱数についてわかるようでわからない記事

はじめに

初めまして。工学院大学 電気・電子工学専攻修士1年 先進ネットワークシステム研究室の吉山です。 私の研究範囲もこれまでの2人と同様コアネットワークですが、私はコアネットワークとは少し離れた記事を書いていきます。 当研究室以外でも用いることがあるかも知れない内容になっているので最後まで読んで頂ければ幸いです。

今回は乱数について書いていきます。 大まかな内容は以下の通りになります。

  1. 乱数とは
  2. 乱数列と乱数列の型
  3. 乱数列の例

乱数とは

乱数にもいくつか種類があるため、この章で乱数の説明をする際は一様乱数というものを用いていきます。 まず乱数とは、読んで字のごとく乱れた数、つまりランダムな数ということです。

身近な例で言うと、6面サイコロが挙げられます。 サイコロは何か手を加えない限りは、投げるまでどの目が出るかわからない。 つまりランダムな数です。 また、サイコロの目が出る確率は一応完全な1/6となるため、結果は一様(全ての目の出る確率が同じ)になります。 このような乱数を一様乱数といいます。 コイントスも一様乱数です。

話は変わりますが、実は我々がプログラム等で出力している乱数は疑似乱数といい、真の乱数ではありません。 真の乱数とは、サイコロのように次の目を予測することが完全に不可能なものになっています。 プログラムで出力するような乱数は、シード値というものから計算を行って出力しているものです。 そのため、物理的に人の力を加えず乱数を生成することは不可能です。 世間一般的には、この疑似乱数も普通の乱数として扱っているため、豆知識として頭の片隅に入れていただけると幸いです。

乱数列と乱数列の型

乱数を数列にしたものです。 乱数列の各要素は乱数とも言えます。

例として乱数列は[1,4,6,4,3,3]のようなもので、この乱数列の中の1や4を乱数といいます。 また乱数列には以下の2種類があります。

  • 離散型
  • 連続型

離散型、連続型

乱数列には離散型と連続型というものがあります。 離散型とは、2つの任意の数の間の値が存在しえない乱数列の型です。

サイコロが出る目は1,2,3,4,5,6と固定で、1と2の間に値は存在しないため、離散型になります。 また生物学上の男性と女性は、間の値が存在しないため離散型になります。 離散的な値を取るため、グラフで表すと棒グラフであることが多いです。以下に例を示します。 サイコロ

次に連続型は、2つの任意の数の間の値が存在しうる乱数列の型です。 身長の150cmと151cmの間には150.5cmがあり、150cmと150.5cmの間には150.25cmがあるため、これは連続型となります。 また、50m走のタイムも人によってばらつきがあり、2人のタイムの間に他のタイムが存在する可能性があるため連続型になります。 これは連続的な値を取るため、折れ線グラフで表すことが多いです。以下に例を示します。 クラス

このように乱数列には離散型と連続型があります。 (クラスの身長は小数点第2位を繰り上げて1cm刻みや0.5cm刻みで表すことが多いため、その場合は離散型になります。)

乱数列の例

この章では乱数列、乱数列の一部について説明していきます。 非常に理解しやすいものや、ネットワークシミュレーションを行う際に必要なものを挙げていきます。

ベルヌーイ分布

男性か女性か、成功か失敗かのように2択しか選択肢のないものの乱数列をベルヌーイ分布といいます。 無限に続く小数が連続して出る可能性がないため、離散型になります。

二項分布

ベルヌーイ試行(2択の試行)を行った際に、ある事象が何回起こるかを表すものになります。 例としては表と裏しかないコインを5回投げた時に、表が2回出る確率等です。 無限に続く小数が連続して出る可能性がないため、離散型になります。

ポアソン分布

単位時間当たりの生起確率を示します。 生起確率とは、事象が起こる確率です。 無限に続く小数が連続して出る可能性がないため、離散型になります。 そしてこちらは、ネットワークシミュレーションで用います。 ネットワークの負荷を決定する際に、ポアソン分布で負荷を求めます。

例として1年間での1日あたりの交通事故死亡者数はポアソン分布で表せます。 下に例として挙げたもののグラフを示します。 非常にわかりやすかったので、参考文献のグラフをそのまま使わせていただきました。 test01.png (66.5 kB) (引用:指数分布とポアソン分布のいけない関係 | SlideShare | Nagi Teramoto)

指数分布

指数分布は事象の生起間隔の確率を示します。 生起間隔とは、ある事象が起こって次にまた発生するまでの間隔です。 こちらも、確率として表す値には中間的な値が存在するため、連続型になります。 こちらもネットワークシミュレーションで用います。 一つの要求が発生した後、次に発生する間隔を指数分布を用いて決定します。

例として、飲食店で次に来客が来る分布を示した図を示します。 test02.png (62.2 kB)

ポアソン分布と指数分布の関係

どちらともランダムに起きる事象の確率分布になっています。 ランダムな事象に対して、発生間隔に着目すると指数分布、発生回数に着目するとポアソン分布になります。 また、指数分布が求まるとポアソン分布を求めることが可能になります。 式が複雑になるのでここでは書きませんが、気になる方がいたら参考文献の3を読んでみてください。

他にも確率分布は多くあり、関係性のある確率分布もあるため、こちらも是非調べてみてください。

おわりに

今回は乱数について書いてみました。 少しでも乱数についてわかっていただければ幸いです。 また、研究室での詳しい研究内容や、研究室の雰囲気、他の研究室について等気になることが少しでもあればこちらにリプライやDMください。 Twitter:先進ネットワークシステム研究室

ここまで読んでくださった方に、お令和申し上げます。

参考文献

  1. 乱数列 | Wikipedia
  2. 指数分布とポアソン分布のいけない関係 | SlideShare | Nagi Teramoto
  3. 指数分布|データ科学便覧
  4. Advanced Network Systems Labo.(先進ネットワークシステム研究室)