আমাদের একটি পূর্ণসংখ্যার অ্যারে দেওয়া হয়েছে N (একাধিক 4 এর আকার) এবং আমাদের অ্যারেতে Xclusive OR অপারেশন করতে হবে যেমন ইনপুট[1- 4] resemblesutility_arr[1- 4] এবং কম্পিউটিংয়ের শর্ত হল If arr[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" যদি এই দুটি ইনপুট, A এবং B, উভয়ই যুক্তির স্তরে "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" যদি এই দুটি ইনপুট, A এবং B, উভয়ই যুক্তির স্তরে "1" বা "0" হয়, যা গেটটিকে "বিজোড় কিন্তু জোড় গেট নয়।" অন্য কথায়, যখন ইনপুটগুলির একটি বিজোড় সংখ্যা 1s থাকে, তখন আউটপুট হয় "1।" 4 এর গুণিতক আকারের ইনপুট[] এর জন্যই কাজ করবে, অন্যান্য আকারের ইনপুট অ্যারেগুলি বিজোড় বসানো সংখ্যার জায়গায় 0s দেখাবে৷
XOR অপারেশনের পরে ফলাফল 5 5 7 6 2 14 15 4
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি হল -
-
XOR এর বৈশিষ্ট্য অনুযায়ী a ⊕ a =0 এবং a ⊕ 0 =a। (a ⊕ b ⊕ c) ⊕ (b ⊕ c ⊕ d) =a ⊕ d (As (b ⊕ c) ⊕ (b ⊕ c) =0)
-
গণনার জন্য অ্যারেটিকে 4টি গ্রুপে ভাগ করা হয়েছে এবং আমরা প্রতিটি গ্রুপের ফলাফল গণনা করতে XOR-এর বৈশিষ্ট্যগুলি অনুসরণ করব৷
-
(a ⊕ d) ব্যবহার করে উপরের সম্পত্তি থেকে রেফারেন্স গ্রহণ করে আমরা b এবং c(a ⊕ b ⊕ d) ⊕ (a ⊕ d) =b(a ⊕ c ⊕ d) ⊕ (a ⊕ d) =cপি>
-
এবং b এবং c ব্যবহার করে আমরা নিম্নলিখিত পদ্ধতি ব্যবহার করে a এবং d পেতে পারি(a ⊕ b ⊕ c) ⊕ (b) ⊕ (c) =a(b ⊕ c ⊕ d) ⊕ (b) ⊕ (c) =d
-
প্রক্রিয়াটি চারটি গ্রুপের জন্যই পুনরাবৃত্তি হয়
-
একটি লুপ 2 পয়েন্টার i এবং j দিয়ে পুনরাবৃত্তি করা হয় যতক্ষণ না অ্যারের দৈর্ঘ্যকে চার দিয়ে ভাগ করা হয় এবং একটি টেম্প মান(আন) এবং একটি ইউটিলিটি অ্যারে (যা উত্তরগুলি সঞ্চয় করে) চালু করা হয়৷
-
ফর লুপের ভিতরে xor ক্রিয়াকলাপগুলি বাস্তবায়িত হয়
ans=ইনপুট অ্যারে[i] ⊕ ইনপুট অ্যারে[i+3]
ইউটিলিটি অ্যারে[i+1](খ গণনা করা)=ইনপুট অ্যারে[i+1] ⊕ উত্তর
ইউটিলিটি অ্যারে[i+2](গ গণনা করা)=ইনপুট অ্যারে[i+2] ⊕ উত্তর
ইউটিলিটি অ্যারে[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