蓝桥杯牌型种类(递归)
2021/4/8 10:10:29
本文主要是介绍蓝桥杯牌型种类(递归),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 问题描述:
小明被劫持到X赌城,被迫与其他3人玩牌。 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序 自己手里能拿到的初始牌型组合一共有多少种呢?
输出
请输出该整数,不要输出任何多余的内容或说明文字。
来源:http://oj.ecustacm.cn/problem.php?id=1253
2. 思路分析:
分析题目可以知道这道题目其实一个排列组合问题,需要尝试所有排列组合方案的可能性,根据这个特点我们可以使用递归解决(递归可以搜索的可能性),但是这道题目有一个限制条件是只考虑点数,不考虑牌的顺序,所以在求解的时候不能够像求解全排列那样对于不同的排序方式计算为不同的方案,其实这道题目可以转换为求解每一个数字出现的次数就可以避免牌的出现顺序的问题,有的时候换一种思考问题的方式可能会使问题的处理变得简单一点
3. 代码如下:
res = 0 # 第一个count参数用来计算当目前为止出现了多少张牌了, 第二个step参数是为了控制走的步数, 因为牌的种类是13所以步数最多在13次 def dfs(count: int, step: int): global res if count > 13 or step > 13: return if count == 13: res += 1 return for i in range(5): dfs(count + i, step + 1) if __name__ == '__main__': dfs(0, 0) print(res)
这篇关于蓝桥杯牌型种类(递归)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?
- 2024-05-09企业src漏洞挖掘-有意思的命令执行