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

已知多字段可选值集合,求总组合数计算方法及全组合生成算法

组合数计算与组合生成方案

一、组合数计算方法

你这个场景直接用乘法计数原理计算即可:

  • 多个独立字段的总组合数 = 每个字段可选值数量的乘积
  • 对应到你的场景:3个字段每个都有3种可选值,总组合数就是 3 * 3 * 3 = 3^3 = 27 种
  • 通用公式:如果有n个独立字段,第i个字段有k_i种取值,总组合数为所有k_i的乘积;如果所有字段取值数相同均为k,总组合数就是k的n次方

二、现成生成组合的实现方案

你要生成的所有组合本质就是多个集合的笛卡尔积,几乎所有主流编程语言的标准库/常用工具库都有现成实现,不需要自己手动写逻辑:

Python 实现

直接用标准库itertools的product方法:

import itertools

# 单个字段的可选取值范围
value_range = [0, 1, 2]
# 生成3个字段的所有组合,repeat参数对应字段数量
all_combinations = list(itertools.product(value_range, repeat=3))

Java 实现

用Guava工具库的Sets.cartesianProduct方法:

import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
import java.util.List;
import java.util.Set;

Set<List<Integer>> allCombinations = Sets.cartesianProduct(
        ImmutableSet.of(0, 1, 2),
        ImmutableSet.of(0, 1, 2),
        ImmutableSet.of(0, 1, 2)
);

JavaScript 实现

用Lodash工具库的product方法:

const _ = require('lodash');
const allCombinations = _.product([0,1,2], [0,1,2], [0,1,2]);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:36:04