Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 哈夫曼树:猜牌游戏_Algorithm_Tree_Huffman Code - Fatal编程技术网

Algorithm 哈夫曼树:猜牌游戏

Algorithm 哈夫曼树:猜牌游戏,algorithm,tree,huffman-code,Algorithm,Tree,Huffman Code,“设计一个最小化预期问题数量的策略 在下面的游戏[Gar94]中问道,你有一副牌 这包括一张黑桃王牌,两张黑桃平手,三张黑桃 三,加上九个九,总共45张牌。有人抽 来自shuffleddeck的卡片,您必须通过询问来识别 回答为是或否的问题。” 这是一个来自算法设计和分析的练习 我想到的是两种解决方法: 是9号吗? 不是:是8号吗? 不是:是7号吗。。。等等 这张卡>5吗? 否:卡是否>2。。。等等 哪种方法是正确的 欢迎任何帮助 编辑:我应该使用贪婪的方法。这两种方法都不是最好的方法。你可以进

“设计一个最小化预期问题数量的策略 在下面的游戏[Gar94]中问道,你有一副牌 这包括一张黑桃王牌,两张黑桃平手,三张黑桃 三,加上九个九,总共45张牌。有人抽 来自shuffleddeck的卡片,您必须通过询问来识别 回答为是或否的问题。”

这是一个来自算法设计和分析的练习

我想到的是两种解决方法:

  • 是9号吗? 不是:是8号吗? 不是:是7号吗。。。等等

  • 这张卡>5吗? 否:卡是否>2。。。等等

  • 哪种方法是正确的

    欢迎任何帮助


    编辑:我应该使用贪婪的方法。

    这两种方法都不是最好的方法。你可以进一步概括你提出的问题,比如:“所选卡片是1、4、7还是8中的一张?”


    要决定要问哪个问题,您需要构建一个包含数字的哈夫曼树。然后你会问:“所选卡片是左子树中的一个数字吗?”如果是,向下移动到左子树并重复。否则,移动到右侧子树并重复。

    这两种方法都不是最好的方法。你可以进一步概括你提出的问题,比如:“所选卡片是1、4、7还是8中的一张?”


    要决定要问哪个问题,您需要构建一个包含数字的哈夫曼树。然后你会问:“所选卡片是左子树中的一个数字吗?”如果是,向下移动到左子树并重复。否则,移动到右侧子树并重复。

    哈夫曼代码可以排序,这样问题就像问题中的#2一样。例如,“x<7吗?”,是的,然后是“x<5吗?”,等等@MarkAdler:这很有趣,你是对的,在这种情况下可以在保持最佳结果的同时完成。我很好奇你是如何看待这一点的:你是否分析了9张权重为1-9的卡的具体情况,或者权重是否有某种通用属性使这一点成为事实?很明显,因为频率是按照卡值的顺序排列的,所以规范代码自然会对符号进行排序。一般属性是value1