首页 > 编程语言 >牌的组合数-python

牌的组合数-python

时间:2022-08-24 10:15:06浏览次数:59  
标签:count 13 组合 python dfs num card size

问:四个人玩牌,去掉大小王,一个人拿牌的组合有多少种可能

方法一:DFS

# 牌的组合数.常识:13*4+2=54 张牌。每一类大小可以拿的张数有:0, 1, 2, 3, 4。问:四个人玩牌,一个人拿牌的组合数有多少种
count = 0
card_num = 0
def num_conbinations():
    dfs(0)
    print(count)
    
def dfs(card_size):
    global count
    global card_num
    # card_size: 牌的点数   card_num: 牌的张数
    if card_size > 13:
        return
    if card_num == 13:
        count += 1
        return
    if card_num > 13:
        return
    for i in range(5):    # 每一类牌有0,1,2,3,4种方式
        card_num += i
        dfs(card_size+1)
        card_num -= i
num_conbinations()

 

标签:count,13,组合,python,dfs,num,card,size
From: https://www.cnblogs.com/demo-deng/p/16618846.html

相关文章

  • Python_13包
    一、包1、包用于将一组模块归并到一个目录中,将有联系的模块组织在一起,可以有效避免模块名称冲突问题,让应用组织更加清晰。2、Python语法要求每个包都必须有__init__.py文......
  • linux安装python3
    Linux安装python3.7.13以下例子服务器为:centos7官网下载安装包https://www.python.org/downloads/上传到服务器#我是把包放在了/usr/local下Python-3.7.13.tgz......
  • linux安装python虚拟环境并启动python程序
    安装python虚拟环境并启动python应用安装虚拟环境#安装virtualenv虚拟环境工具pip37为python命令安装python应用时创建的/usr/bin/pip37pip37installvirtuale......
  • python 3 条件判断
    条件判断:if语句ifelse语句     循环:   range(5)是生成小于5的0,1,2,3,4,如果加上一个list[range(5)]就是生成一个列表[0,1,2,3,4]如果计算0-100的整......
  • Python-Anaconda介绍、安装及使用教程
    〇、序一、什么是Anaconda?1.简介2.特点3.Anaconda、conda、pip、virtualenv的区别①Anaconda②conda③pip④virtualenv⑤pip与conda比较→依赖......
  • 2022年第 12期《python接口web自动化+测试开发》课程,9月17号开学!
    2022年第12期《python接口web自动化+测试开发》课程,9月17号开学(课程全面升级!)主讲老师:上海-悠悠上课方式:微信群视频在线教学,方便交流本期上课时间:2022年9月17号-2022......
  • 【python】Django入门例子
     https://blog.csdn.net/DAO_HUNG/article/details/120245121页面效果:     碰到的问题:1、setting.py的TEMPLATES‘DIRS’[]加入模版路径配置错误,不知道为......
  • 【组合数学】错位排序
    错位排序:编号为\(1\)到\(n\)的球装进编号\(1\)到\(n\)的盒子里,问每个球与它所在的盒子编号都不同的方案数。公式:设\(D_n\)表示\(n\)个球的方案数,则:\(D_n=(n-1......
  • Python列表切片的特殊妙用
    假如,我们拥有一个如下列表:>>>nums=[iforiinrange(10)]>>>nums[0,1,2,3,4,5,6,7,8,9]我们此时通过切片获取列表的前三个值>>>nums[:3][0,1,2]......
  • Python-异常处理
    异常处理异常捕获try-expect语句i=input("请输入一个非零十进制数:")y=123try:result=y/int(i)print(result)print("{0}/{1}={2}".f......