如何在Wolfram Mathematica中向每个子集中添加指定元素
实现方法
核心逻辑
无需调整原有5张牌组合的生成规则,只要在拿到每一个生成好的5张组合后,直接把方块2、方块4追加到组合中即可,最终输出的每个子集都是固定包含这两张牌的7张牌组合,组合总数和原5张组合总数完全一致。
不同场景操作方式
手动处理场景
- 按顺序列出所有已生成的5张牌组合
- 对每一个5张组合,直接补充写入「方块2」「方块4」两个牌面即可
代码实现场景(以Python为例)
如果还未生成5张组合,可直接在生成阶段同步完成追加,内存效率更高:
from itertools import combinations # 构造排除方块2、方块4的50张牌列表,可替换为自定义牌面标识 all_cards = [f"{s}{n}" for s in ["♠","♥","♣","♦"] for n in range(1,14)] excluded_cards = ["♦2", "♦4"] remaining_cards = [card for card in all_cards if card not in excluded_cards] # 生成5张组合并同步追加固定牌 final_combinations = [list(comb) + ["♦2", "♦4"] for comb in combinations(remaining_cards, 5)]
如果已经提前生成好了存储5张组合的列表five_card_combs,直接遍历追加即可:
final_combinations = [comb + ["♦2", "♦4"] for comb in five_card_combs]
注意事项
- 原50张牌已经排除了方块2和方块4,追加后天然不会出现牌面重复,无需额外做去重处理
- 最终组合总数和原5张组合数完全一致,为C(50,5)=2118760个
内容的提问来源于stack exchange,提问作者Dyson
相关产品推荐
相关产品推荐

