乱数ミニ知識集

乱数と確率分布について語ったツイートに、補足を加えてまとめました。
7
池田 泰延 / ICS @clockmaker

JavaScriptで乱数を扱うとき「Math.random()」を使うと思いますが、そこで考える事を終わらしてはいけない。 少し数式を変えるだけで一様分布以外の乱数が得られます。 ics.media/entry/11292 pic.twitter.com/5SjMwLE7fy

2016-03-07 10:31:06
拡大
拡大
拡大
拡大
計量ちゃん❄️準備中 @Keiryo_tan

明日くらいに、この記事を確率論の視点から解説するよ。

2016-03-15 23:36:31

本編スタート

計量ちゃん❄️準備中 @Keiryo_tan

延び延びになってた乱数の話を始めるよ〜。確率分布を知れば知るほど乱数の見方が変わる!

2016-03-18 23:07:02
計量ちゃん❄️準備中 @Keiryo_tan

前にRTした記事を紹介から、、JavaScriptのプログラムで、ビジュアルアートやアニメーションの演出に使う乱数のいじくり方が書かれているね。 ICS MEDIA - JavaScript開発に役立つ重要なランダムの数式まとめ ics.media/entry/11292

2016-03-18 23:10:24
計量ちゃん❄️準備中 @Keiryo_tan

ビジュアル的な演出に主眼が置かれていて、理論の方向から解説するのは野暮っていう気もするけど…。ゲームなんかに応用するときには重要になるはず。

2016-03-18 23:11:09
計量ちゃん❄️準備中 @Keiryo_tan

たとえば、正体が不明の「謎分布」だと期待値が分からない!ゲームやくじ引きに使う乱数を調整するのに、期待値が分からないと困るよね。 pic.twitter.com/MBWRnvOoNC

2016-03-18 23:13:07
拡大
計量ちゃん❄️準備中 @Keiryo_tan

まずは確率分布の基本についておさらい。 確率変数は確率に従って定義域内でいろいろな値をとる 確率密度関数の積分が、積分区間内(a以上b以下)の値をとる確率

2016-03-18 23:16:24
計量ちゃん❄️準備中 @Keiryo_tan

確率分布の種類はたくさんあって、それだけで専門書が成り立つくらい。パラメトリック統計学の「主役」正規分布、ほかに一様分布、指数分布とか、、、

2016-03-18 23:17:55
計量ちゃん❄️準備中 @Keiryo_tan

a以上b以下の区間内の値を等確率でとる分布が一様分布U(a,b)。 ほとんどのプログラミング言語で、U(0,1)に従う乱数が用意されてるよ。 pic.twitter.com/yKWNP6LB8I

2016-03-18 23:19:09
拡大
計量ちゃん❄️準備中 @Keiryo_tan

[知識1]Uが一様分布U(0,1)に従うとすると、「X = a + (b−a)⋅U」はU(a,b)に従う

2016-03-18 23:19:55
計量ちゃん❄️準備中 @Keiryo_tan

記事の最初に登場するのは、「一様分布に従う乱数を2回発生させて、足し合わせたもの」。 この分布は確率密度関数の形から三角分布の名前で呼ばれるんだ。三角分布Triangular(a,b,c)のパラメータは下限値a、上限値b、モードc。 pic.twitter.com/H34ZxV9VGI

2016-03-18 23:21:47
拡大
計量ちゃん❄️準備中 @Keiryo_tan

[知識2]UとVが一様分布U(0,1)に従うとすると、「X = (U+V)/2」は三角分布Triangular(0,1,1/2)に従う

2016-03-18 23:23:02
計量ちゃん❄️準備中 @Keiryo_tan

[知識3]Xが三角分布Triangular(0,1,1/2)に従うとすると、「Y = a + (b−a)⋅X」はTriangular(a,b,(a+b)/2)に従う

2016-03-18 23:23:34
  • こんなにシンプルなのに2008年まで知られてなかったなんて…!
計量ちゃん❄️準備中 @Keiryo_tan

次に出てくるのは、「一様分布に従う乱数を2回発生させて、掛け合わせたもの」。これはやっかいなので省略〜。

2016-03-18 23:24:12
計量ちゃん❄️準備中 @Keiryo_tan

その次に出てくるのは、「一様分布に従う乱数を2乗したもの」。 ぱっと見、ヒストグラムは0寄りに偏って見えるけど確率密度関数の式までは分からないかな…?

2016-03-18 23:25:15
計量ちゃん❄️準備中 @Keiryo_tan

そこで、確率変数の変換の式を使って、変換した変数について確率密度関数を求めてみるよ。 pic.twitter.com/hX87bQNpjM

2016-03-18 23:27:05
拡大
拡大
計量ちゃん❄️準備中 @Keiryo_tan

T = U^2 U = √T du/dt = 1/(2√t) p_T(t) = |1/(2√t)| = 1/(2√t) よって、 [知識4]Uが一様分布U(0,1)に従うとすると、「T = U^2」はベータ分布Beta(1/2,1)に従う

2016-03-18 23:28:10
計量ちゃん❄️準備中 @Keiryo_tan

ベータ分布はあまりなじみのない人が多いかな。0以上1以下の区間で連続的な値をとる分布で、オペレーションズリサーチのPERTなどで利用されてるよ。

2016-03-18 23:29:12
計量ちゃん❄️準備中 @Keiryo_tan

ベータ分布Beta(α,β)のパラメータは、分布の形を決めるαとβ。(魅惑の曲線!) pic.twitter.com/t6O25661dh

2016-03-18 23:32:16
拡大
拡大