কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে ম্যাট্রিক্স হরিজেন্টালি ফ্লিপ করে ইনভার্ট করা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি ২-ডি বাইনারি অ্যারে arr (যে শুধু ০ বা ১ ধারণ করে) প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে নেবে।

ফাংশনটি প্রথমে ম্যাট্রিক্সকে হরিজেন্টালি ফ্লিপ করবে, তারপর ইনভার্ট করবে, এবং ফলাফল ম্যাট্রিক্স ফেরত দেবে।

ম্যাট্রিক্সকে হরিজেন্টালি ফ্লিপ করা মানে প্রতিটি রো উল্টে দেওয়া। উদাহরণস্বরূপ, [1, 1, 0] হরিজেন্টালি ফ্লিপ করলে [0, 1, 1] হবে।

ম্যাট্রিক্স ইনভার্ট করা মানে প্রতিটি ০ কে ১ এবং ১ কে ০ করা। উদাহরণস্বরূপ, [0, 1, 1] ইনভার্ট করলে [1, 0, 0] হবে।

উদাহরণস্বরূপ, যদি ইনপুট হয় –

ইনপুট

const arr = [ 
  [1, 1, 0], 
  [1, 0, 1], 
  [0, 0, 0] 
];

আউটপুট

const output = [ 
  [1,0,0], 
  [0,1,0], 
  [1,1,1] 
];

আউটপুট ব্যাখ্যা

প্রথমে প্রতিটি রো উল্টে দেয়া হল –

[[0,1,1],[1,0,1],[0,0,0]]

তারপর, ম্যাট্রিক্স ইনভার্ট করা হল –

[[1,0,0],[0,1,0],[1,1,1]]

উদাহরণ

নিচে কোডটি দেওয়া হল –

const arr = [ 
  [1, 1, 0], 
  [1, 0, 1], 
  [0, 0, 0] 
]; 
const flipAndInvert = (arr = []) => { 
  const invert = n => (n === 1 ? 0 : 1); 
  for (let i = 0; i < arr.length; i++) { 
    for (let j = 0; j < arr[i].length / 2; j++) { 
      const index2 = arr[i].length - 1 - j; 
      if (j === index2) { 
        arr[i][j] = invert(arr[i][j]); 
      } else { 
        const temp = arr[i][j]; 
        arr[i][j] = arr[i][index2]; 
        arr[i][index2] = temp; 
        arr[i][j] = invert(arr[i][j]); 
        arr[i][index2] = invert(arr[i][index2]); 
      } 
    } 
  } 
}; 
flipAndInvert(arr); 
console.log(arr);

আউটপুট

[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 1, 1, 1 ] ]

  1. জাভাস্ক্রিপ্টে 'new' অপারেটর ব্যবহার করে কনস্ট্রাক্টর তৈরির পদ্ধতি

  2. জাভাস্ক্রিপ্টে বাইনারি সংখ্যার প্যারিটি বিট (Parity Bit) হিসাব ও যোগ করা

  3. জাভাস্ক্রিপ্টে ২-ডি স্ট্রিং অ্যারে সর্ট করে ডায়াগোনাল উপাদান বের করা

  4. পাইথনে ম্যাট্রিক্স ফ্লিপ ও ইনভার্ট করুন