【发布时间】:2011-07-06 03:30:02
【问题描述】:
我知道这不是问这个问题的正确地方,但也许一个聪明的人会遇到并有解决方案。
我正在尝试编写一个电脑游戏,我需要一个算法来解决这个问题:
游戏在 2 名玩家之间进行。每边有 1.000 美元。共有三个“盒子”,每个玩家写下他要放入这些盒子的金额。然后比较这些数量。谁把更多的钱放在一个盒子里,谁得 1 分(如果每人抽半分)。谁得分多,谁就赢得他的对手 1.000 美元。示例游戏:
玩家 A:[500, 500, 0] 玩家 B:[333, 333, 334]
玩家 A 获胜,因为他赢得了 Box A 和 Box B(但输掉了 Box C)。
问题:放置资金的最佳策略是什么?
我还有更多问题要问(与算法有关,与数学无关),但我需要先知道这个问题的答案。
更新(1):经过更多研究,我了解到这类问题/游戏称为Colonel Blotto Games。我尽了最大的努力,发现关于这个主题的(高度技术性的)文档很少。简而言之,我遇到的问题(如上所述)被称为简单的 Blotto 游戏(只有三个具有对称资源的战场)。困难的是那些拥有 10 多个非对称资源的战场。我读过的所有文件都说简单的 Blotto 游戏很容易解决。问题是,他们都没有真正说出那个“简单”的解决方案是什么。
更新 (2): 我写了一个小的 actionscript 文件来演示 Tom Sirgedas 提到的论文中的策略。您可以在megaswf 进行测试。说明:单击三角形内的一个点。红色区域代表获胜案例。蓝色区域代表失败案例,白色细线代表平局。
【问题讨论】:
-
链接已损坏(我无法修复)。如果您想访问该网站,请复制并粘贴它,因为最后一个括号不是您发布时 URL 的一部分。
-
我们可以消除“把所有鸡蛋放在一个篮子里”的解决方案
-
Orbit:是的,当然。此外,没有单一的最佳策略。这些类型的游戏被称为非传递性——无论你的策略是什么,总会有更好的策略。所以,玩家应该采取所谓的“混合策略”。
-
@blackened 欢迎您来到 StackOverflow 并提醒我们通常在这里做的三件事:1) 当您获得帮助时,请尝试在您所在的地区也给予帮助回答问题专业知识 2)
Read the FAQs3) 当你看到好的问答时,给他们投票using the gray triangles,因为系统的可信度是基于用户通过分享他们的知识而获得的声誉。还记得接受更好地解决您的问题的答案,如果有的话,by pressing the checkmark sign
标签: algorithm math discrete-mathematics game-theory