Hi ha n targetes idèntiques de tipus A, n de tipus B, n de tipus C, i de tipus D. Hi ha 4 persones que cadascuna ha de rebre n targetes. De quantes maneres es poden distribuir les targetes?

Hi ha n targetes idèntiques de tipus A, n de tipus B, n de tipus C, i de tipus D. Hi ha 4 persones que cadascuna ha de rebre n targetes. De quantes maneres es poden distribuir les targetes?
Anonim

Resposta:

Vegeu a continuació una idea de com abordar aquesta resposta:

Explicació:

Crec que la resposta a la qüestió de la metodologia per fer aquest problema és que les combinacions amb elements idèntics a la població (com ara tenir-ne) # 4n # amb targetes # n # el nombre de tipus A, B, C i D) queda fora de la capacitat de calcular la fórmula de la combinació. En canvi, segons el Dr. Math a mathforum.org, acabes necessitant un parell de tècniques: distribuir objectes en diferents cèl·lules i el principi d'inclusió-exclusió.

He llegit aquest missatge (http://mathforum.org/library/drmath/view/56197.html) que tracta directament de la qüestió de com calcular aquest tipus de problemes una vegada i una altra i el resultat net és que mentre la resposta resideix en algun lloc, no intentaré donar una resposta aquí. Tinc esperança que un dels nostres experts gurus de matemàtiques pugui intervenir i donar-li una millor resposta.

Resposta:

Un programa de recompte en C produeix els següents resultats:

Explicació:

#incloure

int main ()

{

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

int comb 5000 4;

compte llarg;

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

{

numcomb = 0;

per (i = 0; i <= n; i ++) per (j = 0; j <= n-i; j ++) per (k = 0; k <= n-i-j; k ++)

{

pinta numcomb 0 = i;

pinta numcomb 1 = j;

pinta numcomb 2 = k;

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

numcomb ++;

}

comptar = 0;

per (i = 0; i<>

{

per (j = 0; j<>

{

br = 0;

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

si (! br)

{

per (k = 0; k<>

{

br2 = 0;

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

si (! br2)

{

comptar ++;

}

}

}

}

}

printf ("nCount for n =% d:% ld.", n, compte);

}

printf ("n");

retorn (0);

}