3

概述

我在这里一个陌生的地方。我写了一个算法,现在不确定如何记录它。我正在寻求将这种逻辑转化为精确描述的帮助。

细节

我有一种方法可以将可变数量的组作为输入并输出大量结果。结果的数量随组中项目的分布和组的数量而变化。我可以计算将这样创建的结果数:

在伪代码中:

(# of groups -1) * (# items in group 1) * (# items in group 2) * ... * (# items in group n)

用英语:

组数减一,乘以第 1 组的项目数,乘以第 2 组的项目数,乘以第 3 组的项目数……等等。

问题

上面的伪代码和英文描述都显得笨拙。

我如何更简洁地描述这个算法?有没有简洁的数学公式?或者可以用更准确的词来描述吗?更好的伪代码?任何建议将不胜感激。

4

4 回答 4

3

您可以使用大写的 Pi 符号来非常简洁地表达这一点。将组建模为集合并使用基数符号表示# of items in group

于 2012-08-14T20:29:52.673 回答
1

就像 (N-1)*Mult(k(i))(i 从 0 到 N-1)

数学:组的直接乘积

去这里: http ://en.wikipedia.org/wiki/Direct_product_of_groups

并寻找:

===Finite direct products===

在此处输入图像描述

不要忘记乘以 N-1 ;)

于 2012-08-14T20:31:17.173 回答
1

这是我的出发点:

(n-1) * (跨集 1..n 的基数乘积) 其中 n = 组数

于 2012-08-14T20:38:40.980 回答
1

这对我来说是最清楚的,可能大多数人都有 OO 背景而不是抽象数学学位。

(# of groups - 1) * (group1.size) * (group2.size) * ... * (groupN.size)
于 2012-08-14T21:21:49.910 回答