0

基本上,用户将输入获得成功的概率 p = .34,那么我如何确定获得成功所需的试验次数?

我知道我可以通过制作一个像 n+= 1 这样的计数器来获得试验次数,但不知道如何使用这个概率值。帮助将不胜感激。

4

1 回答 1

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
于 2013-09-24T04:24:10.690 回答