﻿import numpy as np  # モジュールNumpyをnpという名前でインポート
import matplotlib.pyplot as plt  # グラフ描画のためのモジュール
# 2人の子供の性別がどちらも男である確率(理論値)を求める関数
def prob_twoboys(pb, pg):
    cond_prob = 0.0
    prob_num = pb * (2.0 - pb)
    prob_denom = (pb + pg) * (4.0 - pb - pg)
    cond_prob = prob_num / prob_denom
    return cond_prob

# 2人の子供の性別がどちらも男である確率(理論値)
print(prob_twoboys(0.05,0))
print(prob_twoboys(0.05,0.001))
print(prob_twoboys(0.3,0))
print(prob_twoboys(0.3,0.01))
# 3次元グラフを描画
pb = np.linspace(0, 1, 51)
pg = np.linspace(0, 1, 51)
PB, PG = np.meshgrid(pb, pg)
prob_bb = prob_twoboys(PB, PG)
fig = plt.figure()
ax = fig.add_subplot(projection="3d")
ax.plot_surface(PB, PG, prob_bb, 
                cmap="Blues", alpha = 0.7, edgecolor="black")
ax.set_xlabel("pb")
ax.set_ylabel("pg")
ax.set_zlabel("prob_bb")
ax.view_init(elev = 40, azim = 30)
plt.show()