Existem n cartas idênticas do tipo A, n do tipo B, n do tipo C e n do tipo D. Existem 4 pessoas que cada uma tem que receber n cartões. De quantas maneiras podemos distribuir os cartões?

Existem n cartas idênticas do tipo A, n do tipo B, n do tipo C e n do tipo D. Existem 4 pessoas que cada uma tem que receber n cartões. De quantas maneiras podemos distribuir os cartões?
Anonim

Responda:

Veja abaixo uma ideia de como abordar essa resposta:

Explicação:

Eu acredito que a resposta à questão da metodologia em fazer este problema é que Combinações com itens idênticos dentro da população (como ter # 4n # cartões com # n # número de tipos A, B, C e D) está fora da capacidade da fórmula combinada de calcular. Em vez disso, de acordo com o Dr. Math, no mathforum.org, você acaba precisando de algumas técnicas: distribuir objetos em células distintas e o princípio da inclusão-exclusão.

Eu li este post (http://mathforum.org/library/drmath/view/56197.html) que lida diretamente com a questão de como calcular esse tipo de problema uma e outra vez e o resultado líquido é que, enquanto a resposta está em algum lugar, não vou tentar dar uma resposta aqui. Espero que um de nossos especialistas em matemática possa intervir e lhe dar uma resposta melhor.

Responda:

Um programa de contagem em C produz os seguintes resultados:

Explicação:

#incluir

int main ()

{

int n, i, j, k, t, br, br2, numcomb;

int comb 5000 4;

contagem longa;

para (n = 1; n <= 20; n ++)

{

numcomb = 0;

para (i = 0; i <= n; i ++) para (j = 0; j <= n-i; j ++) para (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 ++;

}

contagem = 0;

para (i = 0; i<>

{

para (j = 0; j<>

{

br = 0;

para (t = 0; t <4; t ++) se (pente i t + pente j t> n) br = 1;

if (! br)

{

para (k = 0; k<>

{

br2 = 0;

para (t = 0; t <4; t ++) se (pente i t + pente j t + pente k t> n) br2 = 1;

if (! br2)

{

contar ++;

}

}

}

}

}

printf (" nContagem para n =% d:% ld.", n, contagem);

}

printf (" n");

retorno (0);

}