Advertisement
Guest User

Untitled

a guest
Jan 21st, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.38 KB | None | 0 0
  1. import random
  2. class UrneProbleem(object):
  3.     origineel = []
  4.     def __init__(self,l):
  5.         toRemove = []
  6.         for i in range(len(l)):
  7.             if len(l[i]) == 0:
  8.                 toRemove.append(i)
  9.         for i in toRemove:
  10.             l.remove(l[i])
  11.         self.lijst = [l[i][:] for i in range(len(l))]
  12.         UrneProbleem.origineel = [l[i][:] for i in range(len(l))]
  13.     def __str__(self):
  14.         return '%s' % str(self.lijst)
  15.     def kies_met_terugleggen(self):
  16.         iu = random.randint(0,len(self.lijst) - 1)
  17.         io = random.randint(0,len(self.lijst[iu]) - 1)
  18.         return iu,io,self.lijst[iu][io]
  19.     def kies_zonder_terugleggen(self):
  20.         iu = random.randint(0,len(self.lijst) - 1)
  21.         io = random.randint(0,len(self.lijst[iu]) - 1)
  22.         t= iu,io,self.lijst[iu][io]
  23.         self.lijst[iu].pop(io)
  24.         if len(self.lijst[iu]) == 0:
  25.             self.lijst.pop(iu)
  26.         return t
  27.     def bereken_kans(self,N):
  28.         s=0
  29.         for _ in range(N):
  30.             self.lijst = [UrneProbleem.origineel[i][:] for i in range(len(UrneProbleem.origineel))]
  31.             if(self.doe_experiment()):
  32.                 s+=1
  33.         return s/N
  34. class GekleurdExperimentMetTerugleggen(UrneProbleem):
  35.     def __init__(self,l,aant,d):
  36.         self.aant = aant
  37.         self.dic = d
  38.         super(GekleurdExperimentMetTerugleggen, self).__init__(l)
  39.         def doe_experiment(self):
  40.             n = {}
  41.             for _ in range(self.aant):
  42.                 a = self.kies_met_terugleggen()[2]
  43.                 if a in n:
  44.                     n.update({a:n[a] + 1})
  45.                 else:
  46.                     n.update({a:1})
  47.             for k in self.dic:
  48.                 if n.get(k,0) != self.dic.get(k,0):
  49.                     return False
  50.             return True
  51. class GekleurdExperimentZonderTerugleggen(GekleurdExperimentMetTerugleggen):
  52.     def doe_experiment(self):
  53.         n = {}
  54.         for _ in range(self.aant):
  55.             a = self.kies_zonder_terugleggen()[2]
  56.             if a in n:
  57.                 n.update({a:n[a] + 1})
  58.             else:
  59.                 n.update({a:1})
  60.         for k in self.dic:
  61.             if n.get(k,0) != self.dic.get(k,0):
  62.                 return False
  63.         return True
  64.  
  65. p = GekleurdExperimentZonderTerugleggen([['wit','wit','rood','rood','rood','wit','rood']],2,{'wit':2,'rood':0})
  66. print(p.bereken_kans(10))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement