You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算人员列表与座位列表的唯一就座排列方式?

生成人员与座位的所有唯一就座组合

给定人员列表和座位列表,要找出所有人员对应唯一座位的就座方式,本质是求两个列表的全排列匹配(每个人员对应唯一座位,无重复占用)。

示例输入

people = ["P1", "P2", "P3"]
seats = ["S1", "S2", "S3"]

解决方法(Python实现)

利用itertools.permutations生成座位的所有排列,再将每个排列与人员一一配对,即可得到所有唯一组合:

import itertools

people = ["P1", "P2", "P3"]
seats = ["S1", "S2", "S3"]

# 生成所有座位排列,与人员逐一配对
all_seatings = tuple(
    tuple(zip(people, seat_permutation))
    for seat_permutation in itertools.permutations(seats)
)

print(all_seatings)

代码说明

  • itertools.permutations(seats):生成座位列表的所有可能排列,共n!种(n为座位数量)
  • zip(people, seat_permutation):将每个人员与排列后的座位一一绑定,形成人员-座位配对元组
  • 外层tuple嵌套:将所有组合整理成你需要的嵌套元组格式,运行结果与示例完全一致

内容的提问来源于stack exchange,提问作者Mgorji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 18:32:42