列表项全组合
把列表的每一行当成一个元素,列出它们的所有组合(不考虑顺序):可以只取固定长度,也可以从 1 项一直列到全部;为防组合爆炸,输入最多 12 项、结果最多 20000 条,任一超过直接报错。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
列表(每行一项,最多 12 项)
组合结果
一行一组,最多 20000 行。
输入列表后即可列出全部组合
输入项数: 0 · 组合数: 0 · 最大长度: 0 · 结果上限: 0
这个工具能做什么
- 两两配对:把名单里的成员列出所有二人组合,用来排值班、抽对手或安排访谈。
- 测试组合覆盖:从若干选项里列出所有搭配,检查哪些组合还没有被验证过。
- 选品搭配:把商品两两组合,快速过一遍可能的套餐方案。
示例
输入
苹果 香蕉 樱桃
输出
苹果,香蕉 苹果,樱桃 香蕉,樱桃
3 项取 2 项共 3 组组合,顺序不计:苹果+香蕉、苹果+樱桃、香蕉+樱桃。
常见问题
最多能算多少组合?
输入最多 12 项、结果最多 20000 条,任一超过都会报错 `input-too-large`。组合数是 C(n,r) 级别:12 项取 6 项已有 924 组,全部长度加起来 4095 组;而 20 项的全部组合上百万组,浏览器里算不完,所以直接拦住。
组合和排列有什么区别?
组合不看顺序,a,b 与 b,a 算同一组;排列看顺序,两者算两种结果。需要区分顺序请用「列表全排列」工具。
「每组取几项」填 0 是什么意思?
表示从 1 项一直列到全部 n 项,输出先短后长、同长度内按输入顺序。填具体数字(例如 2)就只输出该长度的组合。
结果条数超过上限怎么办?
把「结果上限」调小不会截断结果——上限是用来拦爆炸的,超过就报错而不是悄悄给一半。可以先减少输入项数,或把列表拆成几批分别计算。
关键词:列表全组合组合combinationC(n,r)组合枚举所有组合排列组合子集