问题: 你有一个带3个红球和3个绿球的水桶。 假设一旦你从水桶中抽出一个球,你就不能更换它。 绘制3个相同颜色的球的概率是多少?
问题:我的代码总是给出0.0
import random
def noReplacementSimulation(numTrials):
'''
Runs numTrials trials of a Monte Carlo simulation
of drawing 3 balls out of a bucket containing
3 red and 3 green balls. Balls are not replaced once
drawn. Returns the a decimal - the fraction of times 3
balls of the same color were drawn.
'''
for i in range(numTrials):
hola=0
b=['r','r','r','g','g','g']
for a in range(3):
ball=random.choice(b)
b.remove(ball)
if b[0]==b[1] and b[1]==b[2] and b[2]==b[0]:
hola=hola+1
return float(hola)/numTrials
答案 0 :(得分:4)
您的代码 始终只返回0.0
,大部分时间都是如此。你重置了
hola=0
循环中的 ,因此您只能以hola == 0
或hola == 1
结尾。你想要
hola=0
for i in range(numTrials):
# stuff here
代替。
PS:问题是“绘制3个相同颜色的球的概率是多少?”但是你要检查左的三个球是否具有相同的颜色。那些一般不会是一样的。