lvzhen20 发表于 2023-6-9 10:46

请教大佬们个问题

我把3带一的所有三张牌,和可以带的牌都找到了,例如 ,我要怎么样把这些可以组合的三带一或者三带二都找出来呢,不知道代码要咋写{:1_923:}

平淡最真 发表于 2023-6-9 11:12

https://blog.csdn.net/m0_75106254/article/details/128952114

lvzhen20 发表于 2023-6-9 11:21

牌的组合也可以是有的带牌,有的不带牌的,

ifdess 发表于 2023-6-9 11:30

要找出所有可以组合的三带一或者三带二的牌型,你可以使用递归的方法来解决。下面是一个Python示例代码,用于生成所有可能的三带一或者三带二的组合:

```python
def find_combinations(cards, n, combo_length):
    combinations = []
    if combo_length == 2:
      # 找出所有的三带二组合
      for i in range(len(cards)):
            for j in range(i+1, len(cards)):
                for k in range(j+1, len(cards)):
                  for l in range(len(cards)):
                        if l != i and l != j and l != k:
                            combinations.append(, cards, cards, cards, cards])
    elif combo_length == 1:
      # 找出所有的三带一组合
      for i in range(len(cards)):
            for j in range(i+1, len(cards)):
                for k in range(j+1, len(cards)):
                  for l in range(len(cards)):
                        if l != i and l != j and l != k:
                            combinations.append(, cards, cards, cards])
    else:
      # 递归生成更长的组合
      for i in range(len(cards)):
            rest_cards = cards[:i] + cards
            sub_combinations = find_combinations(rest_cards, n-1, combo_length)
            for sub_combination in sub_combinations:
                combinations.append(] * combo_length + sub_combination)

    return combinations

# 示例输入
cards =
combo_length = 4

# 调用函数查找所有组合
combinations = find_combinations(cards, len(cards), combo_length)

# 输出结果
for combination in combinations:
    print(combination)
```

这段代码将根据输入的牌列表 `cards` 和组合长度 `combo_length`,生成所有可能的三带一或者三带二的组合。请注意,这个代码示例假设输入的牌列表已经包含了所有可以组合的三张牌和可用于组合的其他牌。输出结果将打印在控制台上,你可以根据需要进行进一步处理或调整输出格式。
页: [1]
查看完整版本: 请教大佬们个问题