= a+b-1 trial_size = 30000 bin_width = 51 def gen_orderd_unif(size): unif = rd.rand(size) # (0, 1)の一様分布に従う乱数をsize個生成 unif.sort() # 大きさの順に並べる return unif # a+b-1個の順番に並べた一様乱数を生成、それをtrial_sizeセット実施して各セットa番目を抜き出す result = [gen_orderd_unif(set_size)[a-1] for _ in np.arange(trial_size)] plt.hist(result, bins=np.linspace(0,1,bin_width)) # 結果をヒストグラムで表示 plt.plot(p, st.beta.pdf(p, a, b)*trial_size/bin_width, c="g", lw=3) # ベータ分布の密度関数を表示 plt.show() Pythonによる乱数を用いたシミュレーションで も、ヒストグラムが理論的な密度関数に一致して いることがわかる。