基本上,用户将输入获得成功的概率 p = .34,那么我如何确定获得成功所需的试验次数?
我知道我可以通过制作一个像 n+= 1 这样的计数器来获得试验次数,但不知道如何使用这个概率值。帮助将不胜感激。
基本上,用户将输入获得成功的概率 p = .34,那么我如何确定获得成功所需的试验次数?
我知道我可以通过制作一个像 n+= 1 这样的计数器来获得试验次数,但不知道如何使用这个概率值。帮助将不胜感激。
您可以使用random()
fromrandom
模块生成范围 [0,1] 内的浮点值。然后您可以将该值与用户输入的概率进行比较。如果随机值小于用户给定的概率,你就成功了。
一旦你理解了这一点,你所需要的只是一个简单的 while 循环,它将不断生成数字,直到你获得成功。
这是一个可能执行您想要的功能的示例:
import random
# The function you wanted
def run_trials(p):
'''only accepts int or float in range [0.0, 1.0]'''
# Count trials
num_trials = 1
while True:
r = random.random()
if r <= p:
print "This took", num_trials, "trial(s) to get a success."
break
else:
num_trials += 1
#Input
while True:
p = input("Please enter a probability: ")
if isinstance(p, float) or isinstance(p, int):
if 0 <= p <= 1:
break
run_trials(p) # pass it to the function