มีการ์ดประเภท A ที่เหมือนกัน n ชนิด, n ประเภท B, n ประเภท C และ n ประเภท D มี 4 คนที่แต่ละคนจะต้องรับการ์ด n เราสามารถแจกการ์ดได้กี่วิธี

มีการ์ดประเภท A ที่เหมือนกัน n ชนิด, n ประเภท B, n ประเภท C และ n ประเภท D มี 4 คนที่แต่ละคนจะต้องรับการ์ด n เราสามารถแจกการ์ดได้กี่วิธี
Anonim

ตอบ:

ดูแนวคิดด้านล่างเกี่ยวกับวิธีการเข้าถึงคำตอบนี้:

คำอธิบาย:

ฉันเชื่อว่าคำตอบสำหรับคำถามของวิธีการในการทำปัญหานี้คือการรวมกันกับรายการที่เหมือนกันภายในประชากร (เช่นมี # 4n # บัตรด้วย # n # จำนวนประเภท A, B, C และ D) อยู่นอกขีดความสามารถของสูตรการผสมที่จะคำนวณ ตามที่ Dr. Math ที่ mathforum.org คุณต้องใช้เทคนิคสองวิธี: การกระจายวัตถุไปยังเซลล์ที่แตกต่างกันและหลักการการแยกแบบรวม

ฉันได้อ่านโพสต์นี้ (http://mathforum.org/library/drmath/view/56197.html) ที่เกี่ยวข้องโดยตรงกับคำถามของวิธีการคำนวณปัญหาประเภทนี้ซ้ำแล้วซ้ำอีกและผลสุทธิคือขณะที่ คำตอบอยู่ตรงนั้นฉันจะไม่พยายามให้คำตอบที่นี่ ฉันหวังว่าหนึ่งในผู้เชี่ยวชาญด้านคณิตศาสตร์ผู้เชี่ยวชาญของเราสามารถเข้ามาและให้คำตอบที่ดีกว่า

ตอบ:

โปรแกรมการนับใน C ให้ผลลัพธ์ต่อไปนี้:

คำอธิบาย:

#include

int หลัก ()

{

int n, i, j, k, t, br, br2, ตัวเลข

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

{

comb numcomb 0 = i;

หวี numcomb 1 = j;

หวี numcomb 2 = k;

หวี numcomb 3 = n-i-j-k;

numcomb ++;

}

count = 0;

สำหรับ (i = 0; ฉัน<>

{

สำหรับ (ญ = 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)

{

นับ ++;

}

}

}

}

}

printf (" nCount สำหรับ n =% d:% ld.", n, นับ);

}

printf (" n");

ผลตอบแทน (0);

}