我的答案是找出给定52张纸牌中的3张纸牌的组合数。像52张卡片中的0张应该= 1,1应该= 52,2 = 1326等等。但我有0 = 1、1 = 1、2 = 52,依此类推。我将进行哪些修改以达到期望的结果?我认为错误出在def factorial()中,但是无论我如何尝试,我似乎都无法修复/找到问题。
var a = 3;
return a;
答案 0 :(得分:0)
您正在打印多余的东西,可能会导致混乱。建议您打印出最终结果,并与a
函数末尾的combinations
变量进行比较,如下所示:
print("For a=" + str(r) + ", result=" + str(result))
这是整体编辑后的代码:
def factorial(num):
if num == 0:
num = 1
elif num > 1:
for i in range(2, num): # Setting i=2 at the start is redundant
num = num * i
return num
def combinations(n,r):
l = n-r
nn = factorial(n)
rn = factorial(r)
ln = factorial(l)
result = nn / (rn*ln)
print("For a=" + str(r) + ", result=" + str(result))
return
h = 52
a = 0
while a<4:
combinations(h,a)
a = a + 1