【Python3】コクのあるnumpy.randomをプロット
togetterの「乱数にコクを出す」記事が面白かったので、matplotlibの練習がてらプロットしてみました。
togetterで色々突っ込む人がやたら詳しくて勉強になります。
原理としては、randの平均を取ると中心極限定理で正規分布に近づくとのこと。
「コクの有る確率」ってのは的を射たいい表現ですな。
オーディオ部品のボリュームにも「Aカーブ」っていう人間の感覚に合わせたパラメータがありますが、人間の確率に対する反応にもそれっぽいパラメータが確実にありますね。
チュンソフトの開発の人が「人間の感覚と、確率の値は一致しない」と言っている記事もあります。
この辺の人間の確率をどう捉えるかは、色々なコツがあるんです。例えば、仮にある武器の命中率に85%と90%の差をつけたとしますよね。これは、単に5%しか差をつけていないのですが、プレイヤーは大変に大きな差を感じてしまうんです。
結論としては、なんか単調になったら正規分布適用するといいかもしれないですね。(小並感)
元記事
プロットするコード
import numpy as np import matplotlib.pyplot as plt data_num = 100000 def koku_rand(num): ret_rand = np.zeros(data_num) for i in range(num): ret_rand += np.random.rand(data_num) ret_rand = ret_rand / num return ret_rand data_list = [] for i in range(1,6): rand = koku_rand(i) plt.hist(rand,bins=100,label="rand {}".format(i)) plt.xlabel("value") plt.ylabel("frequency") plt.title("rand ni koku deru") plt.legend() plt.show()