কম্পিউটার

কিভাবে C# ব্যবহার করে n*n আকারের একটি ম্যাট্রিক্সকে 90 ডিগ্রিতে ঘোরানো যায়?


একটি ম্যাট্রিক্সে, n*n ম্যাট্রিক্সে মোট n/2 স্কোয়ার থাকে এবং আমরা নেস্টেড লুপ ব্যবহার করে প্রতিটি বর্গকে একবারে প্রক্রিয়া করতে পারি। প্রতিটি বর্গক্ষেত্রে মৌল 4টি উপাদানের চক্রে চলে। আমরা প্রতিটি চক্রের জন্য কাঁটার বিপরীত দিকে জড়িত উপাদানগুলিকে অদলবদল করি

অবস্থানে থাকা উপাদান (n-1-j,i) অবস্থানে যাবে (i,j)

অবস্থানে থাকা উপাদান (i,j) অবস্থানে যাবে (j,n-1-i)

অবস্থানে থাকা উপাদান (j,n-1-i) অবস্থানে যাবে (n-1-i,n-1-j)

অবস্থানে থাকা উপাদান (n-1-i,n-1-j) অবস্থানে যাবে (n-1-j,i)

উদাহরণ

using System;
using System.Text;
namespace ConsoleApplication{
   public class Matrix{
      public void RotateMatrixBy90Degree(int[,] matrix){
         int n = matrix.GetLength(0);
         for (int i = 0; i < n / 2; i++){
            for (int j = i; j < n - i - 1; j++){
               int top = matrix[i, j];
               //MOve left to top
               matrix[i, j] = matrix[n - 1 - j, i];

               //Move bottom to left
               matrix[n - 1 - j, i] = matrix[n - i - 1, n - 1 - j];

               //Move right to bottom
               matrix[n - i - 1, n - 1 - j] = matrix[j, n - i - 1];

               //Move top to right
               matrix[j, n - i - 1] = top;
            }
         }
         for (int i = 0; i < n; i++){
            StringBuilder s = new StringBuilder();
            for (int j = 0; j < n; j++){
               s.Append(matrix[i, j] + " ");
            }
            Console.WriteLine(s);
            s = null;
         }
      }
   }
   class Program{
      static void Main(string[] args){
         Matrix m = new Matrix();
         int[,] matrix = { { 5, 1, 9, 11 }, { 2, 4, 8, 10 }, { 13, 3, 6, 7 }, { 15, 14, 12, 16 } };
         m.RotateMatrixBy90Degree(matrix);
      }
   }
}

আউটপুট

15 13 2 5
14  3 4 1
12  6 8 9
16 7 10 11

  1. CSS ব্যবহার করে ম্যাট্রিক্স ট্রান্সফর্ম সহ div ঘোরান

  2. C++ এ কোনো অতিরিক্ত স্থান ব্যবহার না করে একটি ম্যাট্রিক্সকে ঘড়ির কাঁটার দিকে 90 ডিগ্রি ঘোরান

  3. কিভাবে C++ ব্যবহার করে OpenCV তে একটি ভিডিও ঘোরানো যায়?

  4. সি++ ব্যবহার করে ওপেনসিভিতে একটি চিত্র কীভাবে ঘোরানো যায়?