প্যাসকেলের ত্রিভুজ (Pascal’s triangle) হলো বাইনোমিয়াল কোইফিসিয়েন্টের একটি অ্যারে। শীর্ষ সারিটি n=0 হিসেবে নম্বর করা হয়, এবং প্রতিটি সারিতে বাম থেকে শুরু করে k = 0 হিসেবে নম্বর করা হয়। প্রতিটি সংখ্যা পূর্ববর্তী সারির দুটি সংখ্যা যোগ করে পাওয়া যায় যা বর্তমান সেলের ঠিক উপরে রয়েছে। এটি (𝑛𝑘) বের করে সারি নম্বর n এবং কলাম নম্বর k-র জন্যও তৈরি করা যায়।
যদি ইনপুট ১০ হয়, তবে আউটপুট নিচের মতো হবে −
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1
এটি সমাধানের জন্য আমরা নিচের ধাপগুলো অনুসরণ করব।
- for i := 0 to n
- for j = 0 to n – i – 2, print black space
- for j := 0 to i, perform nCr(i, j)
নিচের ইমপ্লিমেন্টেশন দেখে ভালোভাবে বুঝতে পারবেন −
উদাহরণ (C++)
#include<iostream> #include<iomanip> using namespace std; long fact(long n){ int i, fact = 1; for(i = n; i>1; i--) fact *= i; return fact;//দেওয়া সংখ্যার ফ্যাক্টোরিয়াল } long nCr(long n, long r){ long nume = 1, i; for(i = n; i>r; i--) nume *= i; return long(nume/fact(n-r));//nCr-এর ফলাফল জেনারেট } void genPascalsTriangle(long n){ for(int i = 0; i<n; i++){ for(int j = 0; j<(n-i-1); j++) cout <<setw(3)<< " ";//ত্রিভুজাকার ফর্ম দেখানোর জন্য স্পেস প্রিন্ট for(int j = 0; j<(i+1); j++) cout <<setw(3)<< nCr(i, j) <<setw(3)<< " "; cout << endl; } } main(){ int n; cout << "Enter Number of lines: "; cin >> n; genPascalsTriangle(n); }ইনপুট
10
আউটপুট
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1