m0_63442823 2023-11-16 05:19 采纳率: 71.4%
浏览 8
已结题

python返回完成游戏的所有可能方法的数量

#遇到的问题:在 Python 中创建一个函数,该函数返回完成游戏的所有可能方法的数量。jumps(n: int, a: int, b: int)

img

img


#该怎么做啊!!

  • 写回答

2条回答 默认 最新

  • 梦幻精灵_cq 2023-11-16 07:25
    关注
    • 我的解法很笨,就是穷举所有a、b组合到levels = n的方案,最后输出总方案数量。(这初期的想法,不切实际啊😂😂)

    • 琢磨到今天中午(2023-11-19 13:27,终于完成代码调试),终于“完美”解开了您的“谜题”🤗🤗

      img


      img

    python代码

    #!/sur/bin/nve python
    # coding: utf-8
    from itertools import combinations
    
    
    comCount = lambda n,m: len(list(combinations([0]*n, m))) # 求不同组合单行匿名函数。
    
    
    def jumps(n, a, b): # 计算所有不同游戏组合函数。
        print(f"\nn, a, b = {n}, {a}, {b}\n\n计算过程:")
        a1, b1 = not n%a, not n%b
        count = 2 if a1 and b1 else 1 if a1 or b1 else 0 # 单独用a、b完成游戏的方。
    
        for i in range(1, n//a + 1):
            j = (n - a*i)//b
            m = i + j
            
            if a*i + b*j == n and j:
                less = min((i, j))
                count2 = comCount(i+j, less)
                print(f"在{i+j}个位置取{less}个位置,有{count2}种组合。\n{a}×{i} + {b}×{j} = {n}")
                    
                count += count2
                
        return count
    
    
    if __name__  == "__main__":
        n, a, b, result = 4, 1, 2, 5
        #n, a, b, result = 8, 2, 3, 4
        #n, a, b, result = 11, 6, 7, 0
        #n, a, b, result = 30, 3, 5, 58
        #n, a, b, result = 100, 4, 5, 1167937
        print(f"\n预期输出:{result}\n实际输出:{jumps(n, a, b)}")
    
    

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月2日
  • 已采纳回答 11月24日
  • 创建了问题 11月16日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表