Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में ऐरे में सभी जोड़ियों के योग का XOR योग


इस समस्या में, हमें आकार n का एक ऐरे arr[] दिया गया है। हमारा कार्य ऐरे में सभी जोड़ियों के योग के XOR का योग खोजने के लिए एक प्रोग्राम बनाना है।

एक उदाहरण देखकर समस्या को समझते हैं, 

इनपुट: arr[5, 7, 9]

आउटपुट: 22

व्याख्या: 

(5+5) ^ (5+7) ^ (5+9) ^ (7+5) ^ (7+7) ^ (7+9) ^ (9+5) ^ (9+7) ^ (9+9) = 22

समस्या का एक सरल समाधान नेस्टेड लूप का उपयोग करके है। और ऐरे से सभी संभावित जोड़े बनाएं। और प्रत्येक जोड़े के योग का XOR गणना करें।

एल्गोरिदम: 

इनिशियलाइज़ XorSum = 0

चरण 1: 0 से n तक पुनरावृति करें। अनुसरण करें:

चरण 1.1: 0 से n तक पुनरावृति करें। अनुसरण करें

चरण 1.1.1: XorSum अपडेट करें यानी XorSum = XorSum ^ (arr[i]+arr[j]).

चरण 2: योग लौटाएं

हमारे कोड के कार्य को दर्शाने वाला प्रोग्राम

उदाहरण

#include <iostream> using namespace std; int findSumXORPair(int arr[], int n) {    int XorSum = 0;    for (int i = 0; i < n; i++)       for (int j = 0; j < n; j++)        XorSum = XorSum^(arr[i]+arr[j]);    return XorSum; } int main() {    int arr[] = {5, 7, 9};    int n = sizeof(arr)/sizeof(arr[0]);    cout<<"XOR of sum of all pairs in an array is "<<findSumXORPair(arr, n);    return 0; }

आउटपुट

XOR of sum of all pairs in an array is 22

यह समाधान कुशल नहीं है क्योंकि इसकी समय जटिलता n2 कोटि की है।

एक कुशल समाधान XOR के गुणों का उपयोग करके है। समस्या को हल करने के लिए, हम ऐरे के सभी तत्वों का XOR निकालेंगे और फिर इसे दो से गुणा करेंगे।

एल्गोरिदम: 

XorSum = 0 इनिशियलाइज़ करें

चरण 1: 0 से n तक पुनरावृति करें।

चरण 1.1: XorSum अपडेट करें यानी XorSum = XorSum ^ arr[i]

चरण 2: योग को दोगुना करें और लौटाएं।

हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम,

उदाहरण

#include <iostream> using namespace std; int findSumXORPair(int arr[], int n) {    int XorSum = 0;    for (int i = 0; i < n; i++)     XorSum = XorSum^arr[i];    XorSum = 2*XorSum;    return XorSum; } int main() { int arr[] = {5, 7, 9};    int n = sizeof(arr)/sizeof(arr[0]);    cout<<"XOR of sum of all pairs in an array is "<<findSumXORPair(arr, n);    return 0; }

आउटपुट

XOR of sum of all pairs in an array is 22

  1. - C++ में सरणी में उन सभी जोड़े (a,b) और (c,d) को खोजें जो ab = cd को संतुष्ट करते हैं

    मान लीजिए हमारे पास एक सरणी A है, उस सरणी से हमें दो जोड़े (a, b) और (c, d) चुनने हैं, जैसे कि ab = cd। मान लीजिए सरणी A = [3, 4, 7, 1, 2, 9, 8]। आउटपुट जोड़े हैं (4, 2) और (1, 8)। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: i := 0 से n-1 तक, करें j := i + 1 से n-1 तक, करें product = arr[i]

  1. - C++ में XOR ऑपरेशन द्वारा सरणी योग न्यूनतम करें

    समस्या विवरण एक सरणी दी गई है, एक मान X ढूंढें जिससे प्रत्येक तत्व के साथ XOR करने के बाद सरणी का योग न्यूनतम हो। उदाहरण: arr = {8, 5, 7, 6, 9} यदि X = 5, तो XOR के बाद: 13, 0, 2, 3, 12 → योग = 30 (न्यूनतम) एल्गोरिदम 32-बिट बिटमैप बनाएं प्रत्येक तत्व के सेट बिट्स गिनें n/2 हैं, तो X में वह बिट

  1. - C++ में सम ऐरे पजल (बिना घटाव ऑपरेटर के)

    यहां हम ऐरे से संबंधित एक रोचक समस्या देखेंगे। n तत्वों वाला एक ऐरे है। हमें n तत्वों का एक और ऐरे बनाना है। लेकिन दूसरे ऐरे का i-th स्थान पहले ऐरे के i-th तत्व को छोड़कर सभी तत्वों का योग रखेगा। और एक प्रतिबंध है कि हम इस समस्या में घटाव ऑपरेटर का उपयोग नहीं कर सकते। यदि हम घटाव ऑपरेशन का उपयोग कर