আমাদের n এবং k দুটি সংখ্যা দেওয়া হয়েছে। আমাদের অ্যারেগুলির গণনা খুঁজে বের করতে হবে যা n সংখ্যা ব্যবহার করে গঠন করা যেতে পারে যার যোগফল k।
যোগফল K সহ N আকারের অ্যারের সংখ্যা হল $\dbinom{k - 1}{n - 1}$৷
সংখ্যার অ্যারেগুলি খুঁজে বের করার জন্য এটি একটি সরল সূত্র যা n উপাদান ব্যবহার করে গঠিত হতে পারে যার যোগফল k। আসুন একটি উদাহরণ দেখি।
ইনপুট
n = 1 k = 2
আউটপুট
1
একমাত্র অ্যারে যেটি তৈরি করা যেতে পারে তা হল [2]
ইনপুট
n = 2 k = 4
আউটপুট
3
যে অ্যারেগুলি তৈরি করা যেতে পারে তা হল [1, 3], [2, 2], [3, 1]।
অ্যালগরিদম
- n এবং k সংখ্যাটি শুরু করুন।
- সংখ্যার ফ্যাক্টরিয়াল গণনা করার জন্য একটি ফাংশন লিখুন।
- এখন, উপরে দেখানো হিসাবে দ্বিপদ গণনা করার জন্য আমাদের প্রধান ফাংশন লিখুন।
- উত্তরটি ফেরত দিন।
বাস্তবায়ন
C++
-এ উপরের অ্যালগরিদমের বাস্তবায়ন নিচে দেওয়া হল#include <bits/stdc++.h> using namespace std; int factorial(int n) { int result = 1; for (int i = 2; i <= n; i++) { result *= i; } return result; } int getNumberOfArraysCount(int n, int k) { return factorial(n) / (factorial(k) * factorial(n - k)); } int main() { int N = 5, K = 8; cout << getNumberOfArraysCount(K - 1, N - 1) << endl; return 0; }
আউটপুট
আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।
35