问题描述
我将介绍有关该问题的一些背景信息。
有 3 个玩家之间的游戏。我们正在尝试弄清楚第三名球员在看到前两名球员选秀权 a 和 b 后应该做什么。玩家 3 实际上只有 3 个选项。他可以选择 a 和 b 的中点,选择与 b 相同或与 a 相同的选择。在每种情况下,他都有不同的获胜概率,所以他很自然地希望取最大值!
这是我的代码
def P(a,b):
u = (1-p(a)) *(1-p(b))
o = p(b) / (1- (1-p(a))*(1-p(b))*(1-p(b)))
m = (1-p(b))*p(a) / (1- (1-p(a))*(1-p(a))*(1-p(b)))
return max([u,o,m])
x = np.linspace(1,10,50)
y = np.linspace(1,50)
X,Y = np.meshgrid(x,y)
fig = plt.figure(figsize=[12,8])
ax = fig.gca(projection = '3d')
ax.plot_surface(X,Y,P(X,Y))
plt.show()
P(a,b) 表示玩家 3 选择最佳策略时的概率,注意 m,u,o 表示他在中间、低于(选择 a)或超过(选择 b)时获胜的概率),因此函数返回这三个选项中的最大值。
然后我在 python 中为 3d Plots 做我一直做的事情,但是我收到以下错误:
文件“/Users/oskarszarowicz/test.py”,第 15 行,在 P 中 返回最大值([u,m]) ValueError:包含多个元素的数组的真值不明确。使用 a.any() 或 a.all()
我不应该使用网格来做到这一点吗?非常感谢! :)
当我让 P 只返回 u、o 或 m 时,一切都很好!
p(x): x -> exp(-x)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)