gpt4 book ai didi

python - 选择四张牌并检查它们的总和是否为 24 - Python

转载 作者:太空宇宙 更新时间:2023-11-04 07:07:16 26 4
gpt4 key购买 nike

我需要一个程序来从一副牌中挑选四张牌并计算它们的总和。
请注意,ace = 1,jack = 11,queen = 12,king = 13。在计算它们的和时,检查该和是否等于 24。如果是,记录下来。最后,程序应该显示总和为 24 的组合数。

这是我的:

def selfour():
total = 0

cards = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

for a in range(52):
for b in range(1, 52):
for c in range(2, 52):
for d in range(3, 52):
print(cards[a], cards[b], cards[c], cards[d])
if (cards[a] + cards[b] + cards[c] + cards[d]) == 24:
total += 1

return total


def main():
print(selfour())

main()

我不太确定这个程序是否会产生正确的答案,但它效率很低。如果有人可以提供帮助以提高此代码的效率,那就太好了。我相当确定这不会产生正确的答案,所以帮助也很好。

谢谢

最佳答案

Itertools 是您的 friend 。您可以在一行中执行此操作:

import itertools

cards = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

def selfour():
return sum(sum(i) == 24 for i in itertools.combinations(cards, 4))

关于python - 选择四张牌并检查它们的总和是否为 24 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35928914/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com