找钥匙问题

Posted weiyinfu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找钥匙问题相关的知识,希望对你有一定的参考价值。

小明把钥匙丢了,只知道钥匙肯定丢在家里或者学校里。如果丢在了家里,在家里找一次能够找到的概率为a;如果丢在了学校里,在学校里找一次能够找到的概率为b。最初小明认为钥匙丢在家里的概率为p。问:小明应该采取什么策略来找钥匙才能够最快找到钥匙(寻找次数尽量少)?期望寻找次数是多少?

a = 0.8  # 在家找到的概率
b = 0.4  # 在学校找到的概率


def solve(p, c):
    # 钥匙在家的概率为p,返回最优决策、期望找到钥匙所花费的步数
    if c == 0:
        return max(1 / a, 1 / b)  # 如果最后没有找到
    if p > b / (a + b):
        step = solve(p * (1 - a) / (1 - p * a), c - 1)
        ifhome = 1 + step * (1 - p * a)  # 如果去家里找,期望找到的步数
        return ifhome
    else:
        step = solve(p / (1 - (1 - p) * b), c - 1)
        ifschool = 1 + step * (1 - (1 - p) * b)
        # 选取两个儿子中期望步数较小者
        return ifschool


import pylab as plt
import numpy as np
print(solve(0.3, 200))
xs = np.linspace(0, 1, 1000)
ps = [solve(i, 200) for i in xs]
plt.plot(xs, ps)
plt.xlabel("p")
plt.ylabel("step")
print(b/(a+b))
plt.plot([b/(a+b)] * 100, np.linspace(0, max(ps), 100), c='r')
plt.show()

以上是关于找钥匙问题的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin 无法构建到设备 - 工具退出,代码:1。输出:错误:在钥匙串中找不到指定的项目

找钥匙问题

在钥匙串中找不到指定的项目

学习 PyQt5。在我的代码片段中找不到错误 [关闭]

即使在钥匙串中也找不到 iOS 应用商店分发证书

在 XCode 中签名应用程序:在钥匙串中找不到指定的项目