3

概要

私はここで奇妙な場所にいます。私はアルゴリズムを書きましたが、それを文書化する方法がわかりません。このロジックを正確な説明に変えるための支援を探しています。

詳細

可変数のグループを入力として受け取り、大量の結果を吐き出すメソッドがあります。結果の数は、グループ内のアイテムの分布とグループの数によって異なります。そのように作成される結果の数を計算できます。

擬似コード:

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

英語で:

グループの数から 1 を引いた値、グループ 1 のアイテムの数を掛けたもの、グループ 2 のアイテムの数を掛けたもの、グループ 3 のアイテムの数を掛けたものなど。

質問

上記の疑似コードと英語の説明はどちらも扱いにくいようです。

このアルゴリズムをより簡潔に説明するにはどうすればよいですか? コンパクトな数式はありますか? それとも、もっと正確な言葉で説明できますか?より良い疑似コード?アドバイスをいただければ幸いです。

4

4 に答える 4

3

大文字の Pi 表記を使用して、これを非常にきれいに表現できます。グループをセットとしてモデル化し、カーディナリティ表記を使用してを意味し# of items in groupます。

于 2012-08-14T20:29:52.673 に答える
1

これが私の行くことです:

(n-1)*(セット1..n全体のカーディナリティの積)ここで、n=グループの数

于 2012-08-14T20:38:40.980 に答える
1

これは私にとって最も明確であり、おそらく抽象的な数学の学位ではなくオブジェクト指向のバックグラウンドを持つほとんどの人にとって.

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

(N-1)*Mult(k(i))(0 から N-1 までの i) のようなものです。

数学:群の直積

ここにアクセスしてください: http://en.wikipedia.org/wiki/Direct_product_of_groups

そして探します:

===Finite direct products===

ここに画像の説明を入力

N-1 を掛けることを忘れないでください ;)

于 2012-08-14T20:31:17.173 に答える