Є n ідентичних карт типу A, n типу B, n типу C, n типу D. Існує 4 особи, кожен з яких повинен отримати n карт. Скільки способів ми можемо поширювати карти?

Є n ідентичних карт типу A, n типу B, n типу C, n типу D. Існує 4 особи, кожен з яких повинен отримати n карт. Скільки способів ми можемо поширювати карти?
Anonim

Відповідь:

Нижче наведено уявлення про те, як підійти до цієї відповіді:

Пояснення:

Я вважаю, що відповідь на питання про методологію щодо виконання цієї проблеми полягає в тому, що комбінації з ідентичними елементами всередині населення (наприклад, мають # 4n # картки з # n # кількість типів A, B, C і D) виходить за межі здатності комбінаційної формули обчислити. Натомість, на думку д-ра Math на mathforum.org, ви в кінцевому підсумку потребуєте декількох методів: розповсюдження об'єктів у різні клітини та принцип виключення включення.

Я прочитав цю статтю (http://mathforum.org/library/drmath/view/56197.html), яка безпосередньо стосується питання про те, як розраховувати цю проблему знову і знову, і чистий результат полягає в тому, що там відповідь лежить десь, я не спробую відповісти тут. Я сподіваюся, що один з наших експертів з математики може вступити і дати вам кращу відповідь.

Відповідь:

Програма підрахунку в С дає такі результати:

Пояснення:

#включати

int main ()

{

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

int гребінь 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 ++)

{

гребінь numcomb 0 = i;

гребінь numcomb 1 = j;

гребінь numcomb 2 = k;

гребінь numcomb 3 = n-i-j-k;

numcomb ++;

}

count = 0;

для (i = 0; i<>

{

для (j = 0; j<>

{

br = 0;

для (t = 0; t <4; t ++), якщо (гребінь i t + гребінь j t> n) br = 1;

якщо (! br)

{

для (k = 0; k<>

{

br2 = 0;

для (t = 0; t <4; t ++), якщо (гребінь i t + гребінь j t + гребінь k t> n) br2 = 1;

if (! br2)

{

count ++;

}

}

}

}

}

printf ("% n:% d:% ld.", n, count);

}

printf (" t

return (0);

}