Hay n tarjetas idénticas de tipo A, n de tipo B, n de tipo C y n de tipo D. Hay 4 personas que tienen que recibir n tarjetas. ¿De cuántas maneras podemos distribuir las tarjetas?

Hay n tarjetas idénticas de tipo A, n de tipo B, n de tipo C y n de tipo D. Hay 4 personas que tienen que recibir n tarjetas. ¿De cuántas maneras podemos distribuir las tarjetas?
Anonim

Responder:

Vea a continuación una idea sobre cómo abordar esta respuesta:

Explicación:

Creo que la respuesta a la pregunta de la metodología para resolver este problema es que las combinaciones con elementos idénticos dentro de la población (como tener # 4n # tarjetas con #norte# el número de tipos A, B, C y D cae fuera de la capacidad de la fórmula de combinación para calcular. En cambio, según el Dr. Math en mathforum.org, terminas necesitando un par de técnicas: distribuir objetos en celdas distintas y el principio de inclusión-exclusión.

He leído esta publicación (http://mathforum.org/library/drmath/view/56197.html) que trata directamente la cuestión de cómo calcular este tipo de problema una y otra vez y el resultado neto es que mientras la respuesta está en alguna parte, no intentaré dar una respuesta aquí. Espero que uno de nuestros expertos en matemáticas pueda intervenir y darte una mejor respuesta.

Responder:

Un programa de conteo en C produce los siguientes resultados:

Explicación:

#incluir

int main ()

{

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

peine int 5000 4;

cuenta larga

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 ++)

{

peine numcomb 0 = i;

peine numcomb 1 = j;

peine numcomb 2 = k;

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

numcomb ++;

}

cuenta = 0;

para (i = 0; i<>

{

para (j = 0; j<>

{

br = 0;

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

si (! br)

{

para (k = 0; k<>

{

br2 = 0;

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

si (! br2)

{

cuenta ++;

}

}

}

}

}

printf (" nCuenta para n =% d:% ld.", n, cuenta);

}

printf (" n");

retorno (0);

}