ในปัญหานี้ เราได้รับจำนวนเต็ม n เพื่อให้มี n เส้นในแนวตั้งและ n ในแนวนอนที่วางอยู่เพื่อให้มีจุดตัด n2 ระหว่างเส้นเหล่านี้ งานของเราคือค้นหาจำนวนวิธีทั้งหมดที่สามารถวางสิ่งของ 4 ตัวบนทางแยกเหล่านี้ใน
ในลักษณะที่ไม่มีแถวและคอลัมน์ใดมีมากกว่าหนึ่งรายการ
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
อินพุต
n=4
ผลลัพธ์
24
คำอธิบาย
ในการแก้ปัญหานี้ เราจะต้องเลือกเส้นแนวนอน 4 เส้นจาก n เส้น ซึ่งจะมีรายการที่จะเป็น nC4 ตอนนี้ เส้นแนวนอนทุกเส้นมี n เส้นแนวตั้ง ดังนั้นจะมี n วิธีที่จะวางรายการในเส้นแนวนอนที่เลือกเส้นแรก จากนั้น เราจะย้ายไปยังเส้นแนวนอนถัดไปที่เลือก ซึ่งจะมีตำแหน่งที่เป็นไปได้ n-1 และมันก็เหมือนกับวิธีที่สาม ที่จะใส่ใน n-2 และออกมาใน n-3 วิธี ดังนั้นจำนวนวัตต์ทั้งหมดจะเป็น n C4*n*(n-1)*(n-2)*(n-3)
โปรแกรมแสดงการใช้งานอัลกอริทึม
ตัวอย่าง
#include <iostream> using namespace std; long long placeItems(int n) { return (1LL * (1LL * ((n) * (n - 1) * (n - 2) * (n - 3)) / (4 * 3 * 2 * 1)) * ((1LL * (n) * (n - 1) * (n - 2) * (n - 3)))); } int main() { int n = 4; cout<<"The number of way is which 4 items can be placed in the intersection of "<<n; cout<<" lines vertically and horizotally are "<<placeItems(n); return 0; }
ผลลัพธ์
The number of way is which 4 items can be placed in the intersection of 4 lines vertically and horizotally are 24