计算机系统应用教程网站

网站首页 > 技术文章 正文

算法练习题——纸牌博弈 博弈论纸牌游戏

btikc 2024-10-30 02:02:30 技术文章 7 ℃ 0 评论

关注“爱当程序员的我”,每天都有关于编程头条发布


题目:有一组数值不一样的纸牌,玩家A和玩家B依次拿走每张纸牌,规定A先拿,每次拿取只能拿最上面一张或者是最下面的一张,A和B都是绝顶聪明的,他们采用相同的最优化方法来拿取纸牌,问最后获胜者的分数。

此题可以通过暴力递归的方法来遍历整个数组。
如果数组的两个边界分别用i和j来表示,如果A拿走了i,那么B就只能选[i+1, j],如果B选择了j,那么A就只能在[i+1, j+1]中选取……依次类推。作为绝顶聪明的人A一定会从中选取最优的方案,而B也是绝顶聪明的人一定会让A在以后的选取中拿到最小的方案,同时他也获取了当前来说对他最优的选择。

C++代码实现:

暴力递归

其实这道题还是可以采用动态规划的方式来解决该问题,按照上面递归的方式生成动态规划表,最后根据表中的值就可以得出结果。

C++代码实现:

动态规划实现


结束语:

如果喜欢这篇头条,一定要收藏哟^O^

点击关注,了解更多关于编程的知识^O^

如果有不懂的地方,可以留言,相互探讨,相互学习,共同进步^O^

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表