קיימים כרטיסים זהים מסוג A, n מסוג B, n מסוג C, ו- n של סוג D. ישנם 4 אנשים שכל אחד מהם צריך לקבל n קלפים. בכמה דרכים ניתן לחלק את הקלפים?

קיימים כרטיסים זהים מסוג A, n מסוג B, n מסוג C, ו- n של סוג D. ישנם 4 אנשים שכל אחד מהם צריך לקבל n קלפים. בכמה דרכים ניתן לחלק את הקלפים?
Anonim

תשובה:

ראה בהמשך רעיון כיצד לגשת לתשובה זו:

הסבר:

אני מאמין שהתשובה לשאלת המתודולוגיה על בעיה זו היא כי שילובים עם פריטים זהים בתוך האוכלוסייה (כגון # 4n # עם # n # מספר סוגים A, B, C, ו- D) נופל מחוץ ליכולת של הנוסחה המשולבת לחשב. במקום זאת, על פי ד"ר מתמטיקה ב- mathforum.org, בסופו של דבר אתה צריך כמה טכניקות: הפצת אובייקטים לתאים נפרדים, ואת העיקרון הכללת הכללה.

קראתי את הפוסט הזה (http://mathforum.org/library/drmath/view/56197.html) שעוסק באופן ישיר בשאלה כיצד לחשב סוג זה של בעיה שוב ושוב והתוצאה נטו היא שבעוד התשובה נמצאת במקום כלשהו, אני לא אנסה לתת תשובה כאן. אני מקווה אחד גורואים המתמטיקה המומחה שלנו יכול צעד ולתת לך תשובה טובה יותר.

תשובה:

תוכנית ספירה בתוצאות C בעקבות התוצאות:

הסבר:

#include

main main ()

{

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

מסרק int 5000 4;

count count;

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

{

numcomb = 0;

(= = = 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;

אם (! br2)

{

count ++;

}

}

}

}

}

printf (" nCount עבור n =% d:% ld.", n, count);

}

printf (" n");

לחזור (0);

}