কম্পিউটার

জাভাতে 4 আকারের গ্রুপে বিভিন্ন উপাদানের XOR ব্যবহার করে অ্যারে খুঁজুন


আমাদের একটি পূর্ণসংখ্যার অ্যারে দেওয়া হয়েছে 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

  1. কিভাবে জাভা ব্যবহার করে একটি JSON অ্যারে লিখবেন/তৈরি করবেন?

  2. কিভাবে জাভা ব্যবহার করে JSON অ্যারে পড়তে/পার্স করবেন?

  3. পাইথনে 1 থেকে N পর্যন্ত উপাদান ধারণকারী একটি অ্যারেতে চারটি অনুপস্থিত সংখ্যা খুঁজুন

  4. পাইথনে একটি তালিকার আকার খুঁজুন