【问题标题】:How to count combinations from many types? [closed]如何计算多种类型的组合? [关闭]
【发布时间】:2017-12-23 01:25:36
【问题描述】:

我需要创建一个函数,它允许我计算组合而不会重复多种类型。

示例 使用 4 种类型计算 3 元素组合:
A1 A2 A3 B1 B2 C1 D1

在每个组合类型中不能重复:
A1 B1 C1正确,但
A1 A2 B1错误

在给定每种类型的项目数后,必须计算组合数而不重复。

提前感谢您的帮助。

【问题讨论】:

  • @Ben:到目前为止,我唯一的想法是用三重循环来计算它们。
  • 这适用于三元组,但不适用于任意元组。谷歌“枚举组合”以了解如何在不硬编码元组大小的情况下做到这一点。
  • @Ben:关键是我只需要计算 3 元组的组合。

标签: algorithm math combinations


【解决方案1】:

首先选择 3 种类型,您将从中选择元素。这可以通过 NC3 方式完成,其中 N 是类型的数量。

对于这些组合中的每一种,可能的方式数 = n1*n2*n3 其中 n1、n2、n3 分别是类型 1、2 和 3 的元素数。

Hence, Count = summation(ni*nj*nk) {i,j,k = 1 to N}

这实际上与已经解决的这个问题相同:Find sum of subset with multiplication

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多