Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- class UrneProbleem(object):
- origineel = []
- def __init__(self,l):
- toRemove = []
- for i in range(len(l)):
- if len(l[i]) == 0:
- toRemove.append(i)
- for i in toRemove:
- l.remove(l[i])
- self.lijst = [l[i][:] for i in range(len(l))]
- UrneProbleem.origineel = [l[i][:] for i in range(len(l))]
- def __str__(self):
- return '%s' % str(self.lijst)
- def kies_met_terugleggen(self):
- iu = random.randint(0,len(self.lijst) - 1)
- io = random.randint(0,len(self.lijst[iu]) - 1)
- return iu,io,self.lijst[iu][io]
- def kies_zonder_terugleggen(self):
- iu = random.randint(0,len(self.lijst) - 1)
- io = random.randint(0,len(self.lijst[iu]) - 1)
- t= iu,io,self.lijst[iu][io]
- self.lijst[iu].pop(io)
- if len(self.lijst[iu]) == 0:
- self.lijst.pop(iu)
- return t
- def bereken_kans(self,N):
- s=0
- for _ in range(N):
- self.lijst = [UrneProbleem.origineel[i][:] for i in range(len(UrneProbleem.origineel))]
- if(self.doe_experiment()):
- s+=1
- return s/N
- class GekleurdExperimentMetTerugleggen(UrneProbleem):
- def __init__(self,l,aant,d):
- self.aant = aant
- self.dic = d
- super(GekleurdExperimentMetTerugleggen, self).__init__(l)
- def doe_experiment(self):
- n = {}
- for _ in range(self.aant):
- a = self.kies_met_terugleggen()[2]
- if a in n:
- n.update({a:n[a] + 1})
- else:
- n.update({a:1})
- for k in self.dic:
- if n.get(k,0) != self.dic.get(k,0):
- return False
- return True
- class GekleurdExperimentZonderTerugleggen(GekleurdExperimentMetTerugleggen):
- def doe_experiment(self):
- n = {}
- for _ in range(self.aant):
- a = self.kies_zonder_terugleggen()[2]
- if a in n:
- n.update({a:n[a] + 1})
- else:
- n.update({a:1})
- for k in self.dic:
- if n.get(k,0) != self.dic.get(k,0):
- return False
- return True
- p = GekleurdExperimentZonderTerugleggen([['wit','wit','rood','rood','rood','wit','rood']],2,{'wit':2,'rood':0})
- print(p.bereken_kans(10))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement