確率計算機

Pythonの質問

import copy
import random
# Consider using the modules imported above.

class Hat:
  def __init__(self, **kwargs):
    self.contents = []
    print(kwargs)
    for i in kwargs:
      for j in range(kwargs[i]):
        self.contents.append(i)

  def draw(self, num):
    if num >= len(self.contents):
      return self.contents 
    else:
      self.contents = self.contents.copy()
      random_selection = []
      for i in range(num):
        aa = random.choice(self.contents)
        random_selection.append(aa)
        self.contents.remove(aa)
      return random_selection
  
def experiment(hat, expected_balls, num_balls_drawn, num_experiments):

  list_ = []
  for key in expected_balls:
    for j in range(expected_balls[key]):
      list_.append(key)

  num_balls_drawn = min(num_balls_drawn, len(hat.contents))
  
  M = 0
  for i in range(num_experiments):
    ll = copy.deepcopy(hat).draw(num_balls_drawn)

    for l in list_:
      if l in ll:
        ll.remove(l)
    
    if num_balls_drawn - len(ll) == len(list_):
      M+=1
      
  return M/num_experiments

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/u010095372/article/details/129903239