import random
import numpy as np
import matplotlib.pyplot as plt

def descartes(ax, ran_x, ran_y, ax_title,x_label = "x", y_label = "y"):
    ax.set_xlabel(x_label, fontsize = 12)
    ax.set_ylabel(y_label, fontsize = 12)
    ax.set_xlim(ran_x[0], ran_x[1])
    ax.set_ylim(ran_y[0], ran_y[1])
    ax.set_title(ax_title, fontsize = 14)
    ax.grid()
    ax.axhline(0, color = "black")
    ax.axvline(0, color = "black")


fig = plt.figure(figsize = (5, 5))
ax = fig.add_subplot(111)

title1 = "Tokyo University 2023 Math qu.2 NO1"
descartes(ax, [-1, 1000], [13, 15],title1)

random.seed(42)
roll_ball_n = 55
total_n = 10
loop_n=1001

ball_box = [10,10,10,1,1,1,1,100,100,100,100,100]

Flag1=False
cnt1=0
y=[]
yy=[]



for ll in range(loop_n):
    for k in range(total_n):
        for i in range(1,roll_ball_n+1):
            random.shuffle(ball_box)
            #print(ball_box)
            for j in range(11):
                Flag1=True
                if ball_box[j]+ball_box[j+1] == 2:
                    Flag1=False
                    break
            if Flag1==True:
                cnt1 += 1
                #y.append(y)
        y.append(cnt1)
        cnt1=0
    yy.append(np.mean(y))

#print("yy=",yy)
print("yy average=",np.mean(yy))

xx = np.arange(len(yy))

ax.plot(xx ,yy , color = "blue")

xx = np.arange(len(yy))
b = [14]*len(yy)

ax.plot(xx ,b  , color ="red")

plt.show()