ただのメモ

他の人に見せても良い方のメモ

Old Maidと揃う数

Old Maid(ババ抜き)にて、最初に何枚の状態になることが多いのか、ということが気になった。

それをシミュレーションする。

4人でプレイしていることを想定する。

何枚残るのか、ということを10000000回して、ヒストグラムにする。

 
import random
def Mine():
  trump = [i%13+1 for i in range(52)] + [14]
  #Prepare all trump cards except 1 joker
  #Joker is 14
  my_card = random.sample(trump, 13)
  my_card.sort()
  my_card = my_card + [0]*5
  temp = my_card[0] #最初に1枚目を見る
  now_num = 1 #二枚目を考える
  my_num = 13
  while now_num < 13: #14枚目は無いので、それを考えたらダメ
    if temp == my_card[now_num]: #さっき見たものと、今が同じ
      my_num -= 2 #discard 2 trump
      temp = my_card[now_num+1] #次のカードを覚える
      now_num += 2 #さらに次のカードを考えに行く
    else:
      temp = my_card[now_num] #不揃いなら今のカードを覚える
      now_num += 1 #次のカードを考えに行く
  return my_num

def Old_maid(T):
  data = []
  for i in range(T):
    data.append(Mine())
  return data

import numpy as np
import matplotlib.pyplot as plt
x = np.array(Old_maid(1000000))
plt.hist(x, bins = max(x)min(x)+1, color = "orange")
plt.title("Old Maid")
plt.show()
print(np.average(x), np.std(x))

f:id:medical-science:20220103002607p:plain


平均は6.45、標準偏差は1.81であった。最大値は13だが、全然見えない。

ヒストグラムを見るに、どれぐらい、3枚というのが珍しいのかがわかる。

 

人数を変えていくとどうなるか、ということも気になる。それはまた別の機会としよう。

バイバイ!