हमें दो नंबर n और k दिए गए हैं। हमें उन सरणियों की गिनती खोजने की ज़रूरत है जो n संख्याओं का उपयोग करके बनाई जा सकती हैं जिनका योग k है।
N आकार के सरणियों की संख्या K के साथ $\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