समस्या के अनुसार हमें एक सेट arr[n] दिया जाता है जहां n सेट में पूर्णांक तत्वों की संख्या है, कार्य अधिकतम अंतर तत्वों को खोजना है जिन्हें जोड़ा जाना है सेट में तत्वों को प्राप्त करने के लिए। दूसरे शब्दों में, अंतर के रूप में होना चाहिए |a-b| जहां 'ए' और 'बी' दोनों सेट में हों और उनका अंतर कम से कम न हो। इसलिए, हम उन अंतरों की अधिकतम संख्या की गणना करेंगे जो एक समुच्चय से भिन्न और सबसे बड़े हैं। आइए एक उदाहरण की मदद से समस्या और उसके समाधान को समझते हैं।
इनपुट - सेट ={1, 5}
आउटपुट - अधिकतम अंतर तत्व जो एक सेट में जोड़े जा सकते हैं:1
स्पष्टीकरण − सेट में केवल 1 अंतर है यानी |1-5| =4पी>
इनपुट - सेट ={2, 7, 1, 9}
आउटपुट -अधिकतम अंतर
एक सेट में जोड़े जा सकने वाले तत्व हैं:5
स्पष्टीकरण - सेट में अंतर इस प्रकार हैं -
|2-7| = 5 |7-1| = 6 |1-9| = 8 |2-9| = 7 |7-9| = 2
निम्नलिखित कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है
-
सेट के मानों को संग्रहीत करने के लिए एक पूर्णांक सरणी arr[n] लें।
-
फ़ंक्शन में अधिकतम () चरण 3 से 6 का पालन करें।
-
एक तत्व ele, temp, val घोषित करें और उनके मानों को arr[0]
. के बराबर सेट करें -
1 से सरणी के आकार तक लूप i इसे 1 कदम बढ़ा दें।
-
सरणी में सभी तत्वों की gcd खोजें।
-
अस्थायी या गिरफ्तारी [i] के बीच अधिकतम मान के रूप में अस्थायी सेट करें।
-
-
कुल को अस्थायी/वैल और अधिकतम को कुल और आकार के अंतर के रूप में सेट करें।
-
वापसी और अधिकतम प्रिंट करें।
उदाहरण
#include <bits/stdc++.h> using namespace std; //function to find maximum difference element int maximum(int arr[], int size){ int ele = arr[0]; int val = ele; int temp = ele; for (int i = 1; i < size; i++){ val = __gcd(val, arr[i]); temp = max(temp, arr[i]); } int total = temp / val; int max = total - size; return max; } int main(){ int arr[] = { 2, 7, 1, 9}; int size = sizeof(arr) / sizeof(arr[0]); cout<<"Maximum difference elements that can added to a set is: "<<maximum(arr, size); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो हमें निम्न आउटपुट मिलेगा -
Maximum difference elements that can added to a set is: 5