等比例的对比

十里挑一和百里挑十拿个更优秀呢?
做个试验,具体来比较一下十里挑一和百里的第十名哪个更优秀,参考代码

def func1():
    result = 1
    for i in range(10):
        tmp = random.random()
        result = min(tmp, result)
    return result

def func2():
    index = 9
    result = [1 for i in range(index + 2)]
    for i in range(100):
        tmp = random.random()
        for j in range(index, -1, -1):
            if(result[j] > tmp):
                result[j + 1] = result[j]
            else:
                break
        if result[j] > tmp:
            result[j] = tmp
        else:
            result[j + 1] = tmp
    return result[index]

num = 10000
count0 = 0
count1 = 0
for i in range(num):
    a = func1()
    b = func2()
    if a < b:
        count0 += 1
    else:
        count1 += 1

在这10000次试验中,有65%的几率十里挑一战胜百里第十。
多次测试实际上,十里挑一相当于百里第六(index = 6时,双方概率接近50%)

你可能感兴趣的:(数学)