タイプAのカードはn枚、タイプBのカードはn枚、タイプCのカードはn枚、タイプDのカードはn枚あります。それぞれn枚のカードを受け取る必要があるのは4人です。カードを配布する方法はいくつありますか。

タイプAのカードはn枚、タイプBのカードはn枚、タイプCのカードはn枚、タイプDのカードはn枚あります。それぞれn枚のカードを受け取る必要があるのは4人です。カードを配布する方法はいくつありますか。
Anonim

回答:

この答えに近づく方法については、以下を参照してください。

説明:

この問題を解決する方法論の問題に対する答えは、集団内で同一の項目を持つ組み合わせ(たとえば、 #4n# カード付き #n# タイプA、B、C、およびDの数が、組み合わせ式の計算能力を超えています。代わりに、mathforum.orgのDr. Dr. Mathによると、オブジェクトを別々のセルに配置するという2つのテクニックと、包含/除外の原則が必要になります。

私はこの記事(http://mathforum.org/library/drmath/view/56197.html)を何度も何度も何度も何度も計算する方法の問題を直接扱っていますが、最終的には答えはどこかにあるので、ここで答えを出すつもりはありません。私たちのエキスパート数学の達人の一人が参加してあなたにもっと良い答えを与えてくれることを願っています。

回答:

Cのカウントプログラムは次のような結果になります。

説明:

#含める

int main()

{

int n、i、j、k、t、br、br 2、numcomb;

int comb 5000 4;

ロングカウント

(n = 1; n <= 20; n ++)の場合

{

numcomb = 0;

(i = 0; i <= n; i ++)について(j = 0; j <= n-i; j ++)について(k = 0; k <= n-i-j; k ++)

{

comb numcomb 0 = i;

comb numcomb 1 = j;

comb numcomb 2 = k;

comb numcomb 3 = n-i-j-k;

numcomb ++;

}

カウント 0。

(i = 0; iの場合<>

{

(j = 0; jの場合<>

{

br = 0;

(t 0; t 4; t )について(comb [i] [t] comb [j] [t] n)br 1である場合。

if(!br)

{

(k = 0; k<>

{

br2 = 0。

(t 0; t 4; t )について(comb [i] [t] comb [j] [t] comb [k] [t] n)br2 1である場合。

if(!br2)

{

カウント++;

}

}

}

}

}

printf( " n nの数=%d:%ld"、n、count);

}

printf( " n");

(0)を返します。

}