हमें आकार एन (एकाधिक 4 का आकार) के एक पूर्णांक सरणी के साथ दिया गया है और हमारे पास सरणी पर एक्सक्लूसिव या ऑपरेशन को शीर्ष प्रदर्शन करना है जैसे इनपुट [1- 4] जैसा दिखता है उपयोगिता_एआर [1- 4] और कंप्यूटिंग की शर्तें हैं अगर गिरफ्तारी [1 - 4] ={a1, a2, a3, a4}फिर q[1 - 4] ={a1 ⊕ a2 ⊕ a3, a1 ⊕ a2 ⊕ a4, a1 ⊕ a3 ⊕ a4, a2 ⊕ a3 ⊕ a4}
आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -
में - int[] इनपुट ={ 5, 2, 3, 4};
बाहर − XOR ऑपरेशन 4 3 2 5 के बाद का परिणाम
स्पष्टीकरण -एक एक्सक्लूसिव-या गेट का आउटपुट केवल "हाई" जाता है, जब इसके दोनों इनपुट टर्मिनल एक दूसरे से "डिफरेंट" लॉजिक लेवल पर होते हैं। आउटपुट एक "0" है यदि ये दो इनपुट, ए और बी, दोनों तर्क स्तर "1" या "0" पर हैं, तो गेट को "विषम लेकिन सम गेट नहीं" बनाते हैं। दूसरे शब्दों में, जब इनपुट में विषम संख्या 1s होती है, तो आउटपुट "1" होता है।
a1 a2 ⊕ a3 =5 ⊕ 2 ⊕ 3 =4
a1 ⊕ a2 ⊕ a4 =5 ⊕ 2 ⊕ 4 =3
a1 ⊕ a3 ⊕ a4 =5⊕ 3 ⊕ 4 =2
a2 ⊕ a3 ⊕ a4 =2 ⊕ 3 ⊕ 4 =5
में - int[] इनपुट ={ 7, 6, 4, 4, 3, 8, 9, 5};
बाहर − XOR संचालन के बाद परिणाम 5 5 7 6 2 14 15 4
स्पष्टीकरण - एक एक्सक्लूसिव-या गेट का आउटपुट केवल "हाई" जाता है, जब इसके दोनों इनपुट टर्मिनल एक दूसरे से "डिफरेंट" लॉजिक लेवल पर होते हैं। आउटपुट एक "0" है यदि ये दो इनपुट, ए और बी, दोनों तर्क स्तर "1" या "0" पर हैं, तो गेट को "विषम लेकिन सम गेट नहीं" बनाते हैं। दूसरे शब्दों में, जब इनपुट में विषम संख्या 1s होती है, तो आउटपुट "1" होता है। केवल 4 के आकार गुणकों के इनपुट [] के लिए काम करेगा, अन्य आकार के इनपुट सरणी विषम संख्या के स्थान पर 0s दिखाएंगे।
XOR संचालन के बाद परिणाम 5 5 7 6 2 14 15 4
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है -
-
XOR के गुणों के अनुसार a a =0 और a 0 =a. (ए ⊕ बी ⊕ सी) ⊕ (बी ⊕ सी ⊕ डी) =ए ⊕ डी (जैसा (बी ⊕ सी) ⊕ (बी ⊕ सी) =0)
-
गणना के लिए सरणी को 4 के समूहों में विभाजित किया गया है और हम प्रत्येक समूह के परिणामों की गणना करने के लिए XOR के गुणों का पालन करेंगे।
-
(ए डी) का उपयोग करके उपरोक्त संपत्ति से संदर्भ लेते हुए हम बी और सी (ए ⊕ बी ⊕ डी) ⊕ (ए ⊕ डी) =बी (ए ⊕ सी ⊕ डी) ⊕ (ए डी) =सी की गणना कर सकते हैं। पी>
-
और बी और सी का उपयोग करके हम निम्नलिखित दृष्टिकोण का उपयोग करके ए और डी प्राप्त कर सकते हैं (ए बी ⊕ सी) ⊕ (बी) ⊕ (सी) =ए (बी ⊕ सी ⊕ डी) ⊕ (बी) ⊕ (सी) =घ
-
प्रक्रिया सभी चार समूहों के लिए दोहराई जाती है
-
एक लूप को 2 पॉइंटर्स i और j के साथ पुनरावृत्त किया जाता है जब तक कि चार से विभाजित सरणी की लंबाई और एक अस्थायी मान (ANS) और एक उपयोगिता सरणी (जो उत्तर संग्रहीत करती है) पेश की जाती है।
-
लूप के अंदर निम्नलिखित xor संचालन कार्यान्वित किए जाते हैं
ans=इनपुट ऐरे [i] इनपुट ऐरे [i+3]
उपयोगिता सरणी [i+1](बी की गणना)=इनपुट सरणी[i+1] उत्तर
उपयोगिता सरणी [i+2](सी की गणना) =इनपुट सरणी [i+2] ans
उपयोगिता सरणी [i] (एक की गणना) =इनपुट सरणी [i] ⊕ ((उपयोगिता सरणी [i + 1]) ^ (उपयोगिता सरणी [i + 2]))
उपयोगिता सरणी [i] (घ की गणना) =इनपुट सरणी [i+3] ⊕ ((उपयोगिता सरणी [i + 1]) ^ (उपयोगिता सरणी [i + 2]))
-
और पॉइंटर को चार वर्णों के अगले सेट के लिए अपडेट किया जाता है
-
अंत में, सरणी मुद्रित होती है और परिणाम उपयोगकर्ता को वापस कर दिया जाता है।
उदाहरण
import java.util.Arrays; import java.util.List; public class Tutorials{ static int ans = 0; public static void main(String args[]){ int[] input = {7, 1, 2, 3}; int[] arr = new int[input.length]; for (int i = 0, j = 0; j < input.length / 4; j++){ ans = input[i] ^ input[i + 3]; arr[i + 1] = input[i + 1] ^ ans; arr[i + 2] = input[i + 2] ^ ans; arr[i] = input[i] ^ ((arr[i + 1]) ^ (arr[i + 2])); arr[i + 3] = input[i + 3] ^ (arr[i + 1] ^ arr[i + 2]); i += 4; } System.out.println("Different XORs of elements in groups of size 4 is: "); for (int i = 0; i < arr.length; i++){ System.out.println(arr[i]); } } }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Different XORs of elements in groups of size 4 is : 4 5 6 0