ได้รับค่าจำนวนเต็มบวก val ภารกิจคือพิมพ์ค่า binomial coefficient B(n, k) โดยที่ n และ k อยู่ระหว่าง 0 ถึง val
係数 Binomial คืออะไร?
Binomial coefficient C(n, k) คือจำนวนวิธีเลือก k รายการจาก n รายการ ค่าคำนวณได้จากสูตร:
C(n,k) = n! / ((n-k)! * k!) โดยที่ n ≥ k
ตัวอย่าง
Input: B(9,2) Output: 252 การคำนวณ: 9! / (7! * 2!) = 362880 / 1440 = 252
ตาราง Binomial Coefficients
ตารางที่แสดงค่า binomial coefficients สำหรับ n และ k ต่างๆ
Input: value = 5 Output: (ตารางแบบ Pascal's Triangle)
แนวทาง
- รับค่า
valจากผู้ใช้ - ลูป i จาก 0 ถึง
val - ใช้สูตรเวียนเกิด: B(m, x) = B(m, x-1) * (m - x + 1) / x (ถ้า n และ k ไม่ใช่ 0)
- พิมพ์ผลลัพธ์
อัลกอริทึม
START
Step 1: ฟังก์ชัน bin_table(int val)
ลูป i = 0 ถึง val
พิมพ์ i
num = 1
ลูป j = 0 ถึง i
ถ้า i != 0 และ j != 0
num = num * (i - j + 1) / j
พิมพ์ num
พิมพ์ขึ้นบรรทัดใหม่
Step 2: ใน main() กำหนด value = 5 เรียก bin_table(value)
STOP
โค้ดตัวอย่าง
#include <stdio.h>
int bin_table(int val) {
for (int i = 0; i <= val; i++) {
printf("%2d", i);
int num = 1;
for (int j = 0; j <= i; j++) {
if (i != 0 && j != 0)
num = num * (i - j + 1) / j;
printf("%4d", num);
}
printf("\n");
}
}
int main() {
int value = 5;
bin_table(value);
return 0;
}
ผลลัพธ์
(แสดงตาราง Binomial Coefficients แบบ Pascal's Triangle สำหรับค่า 0-5)