为何我用Python计算任意阶魔方组合数的公式无法正常运行?
N阶魔方组合数计算代码修复需求
我编写了一段计算N阶魔方组合数的代码,目前仅在N=2或3时能得到正确结果,N取其他值时输出不符合预期。我已经尝试过以下方法排查问题:
- 用ChatGPT分析代码逻辑
- 更换不同的阶乘实现函数
- 将公式拆分成分段计算的形式
但上述尝试均未解决问题,需要让代码能按照预设公式正确完成计算。
代码实现
import math N = int(input("请输入魔方的阶数:\n")) def factorial(n): return math.factorial(n) # 组合数计算公式 pt1 = factorial(7)*3**6*(24*2**10*factorial(12))**(N%2)*(factorial(24))**math.floor((N-2)/2)*(factorial(24)/factorial(4)**6)**math.floor(((N-2)/2)**2) # 输出格式化结果 Ans = int(pt1) print(f'{Ans:,}')
公式说明
该公式用于计算N阶魔方的总组合数,验证时以N=4为例,对应的计算逻辑为:7! × 3⁶ × (24×2¹⁰×12!)^(N mod 2) × (24!)^floor((N-2)/2) × (24!/(4!)^6)^floor(((N-2)/2)²)
对比专业计算工具的结果后,确认当前代码输出不符合预期。
内容的提问来源于stack exchange,提问作者user24125428
相关产品推荐
相关产品推荐

