“设计一种最小化预期问题数量的策略 在下面的游戏[Gar94],#52中询问。你有一副纸牌 它包括一个黑桃a,两个黑桃,三个 三分,最多9个9,总共45张牌。有人画画 来自洗牌甲板的卡片,你必须通过询问来识别 问题是否回答。“
这是算法设计和分析的练习。
我想到的是两种解决方法:
是9吗? 不:是8岁吗? 不:这是7吗? ......等等。
卡是> 5? 否:卡是> 2? ......等等。
哪种方法正确?
欢迎任何帮助。
编辑:我应该使用贪婪的方法。
答案 0 :(得分:5)
这些都不是最好的方法。您可以进一步概括您提出的问题,例如:“所选卡片是1,4,7还是8?”。
要确定要问哪个问题,您需要构建一个包含数字的Huffman树。然后你会问:“所选卡片是否是左子树中的数字之一?”如果是,请向下移动到左子树并重复。否则,请移至右侧子树并重复。