কম্পিউটার

C++ এ ল্যাটিন স্কোয়ার


ল্যাটিন বর্গ হল একটি ম্যাট্রিক্স যার একটি বিশেষ প্যাটার্ন রয়েছে। আসুন প্যাটার্ন পরীক্ষা করার জন্য বিভিন্ন উদাহরণ দেখি।

1 2
2 1

1 2 3
3 1 2
2 3 1

1 2 3 4
4 1 2 3
3 4 1 2
2 3 4 1

আপনি যে ল্যাটিন বর্গক্ষেত্রটি পাবেন তা বিভিন্ন আকারের হবে যেমন আপনি উপরের উদাহরণগুলিতে লক্ষ্য করেছেন। কিন্তু, আপনি যদি উপরের ম্যাট্রিক্সের প্যাটার্নটি মনোযোগ সহকারে পর্যবেক্ষণ করেন, তাহলে আপনি দেখতে পাবেন যে পূর্ববর্তী সারির শেষ সংখ্যাটি পরবর্তী সারির প্রথম উপাদান হিসেবে আসে।

যে প্যাটার্ন লুকানো ল্যাটিন বর্গক্ষেত্র. আমাদের সেই প্রোগ্রামটি লিখতে হবে যা ইনপুট n এর জন্য উপরের ম্যাট্রিক্স তৈরি করে।

অ্যালগরিদম

  • আপনার পছন্দের যেকোনো নম্বর দিয়ে n শুরু করুন।
  • n + 1 মান সহ একটি সংখ্যা শুরু করুন এটিকে first_half_end বলুন।
  • একটি লুপ লিখুন যা 1 থেকে n উভয়ই অন্তর্ভুক্ত করে পুনরাবৃত্তি করে।
    • first_half_start নামক একটি ভেরিয়েবলে first_half_end এর মান বরাদ্দ করুন।
    • একটি লুপ লিখুন যতক্ষণ না first_half_start মান n এ পৌঁছায়।
      • পুনরাবৃত্ত ভেরিয়েবল প্রিন্ট করুন যেমন, first_half_start.
    • একটি লুপ লিখুন যা 1 থেকে প্রথম_হাফ_এন্ড পর্যন্ত পুনরাবৃত্তি করে।
      • পুনরাবৃত্ত ভেরিয়েবল প্রিন্ট করুন।
    • প্রথম_হাফ_এন্ডের মান 1 দ্বারা হ্রাস করুন।
    • পরবর্তী সারিটি সরান।

বাস্তবায়ন

C++

-এ উপরের অ্যালগরিদমের বাস্তবায়ন নিচে দেওয়া হল
#include <bits/stdc++.h>

using namespace std;

void generateLatinSquare(int n) {
   int first_half_end = n + 1;

   for (int i = 1; i <= n; i++) {
      int first_half_start = first_half_end;
      while (first_half_start <= n) {
         cout << first_half_start << " ";
         first_half_start++;
      }

      for (int second_half_start = 1; second_half_start < first_half_end; second_half_start++){
         cout << second_half_start << " ";
      }
      first_half_end--;
   cout << endl;
   }
   cout << endl;
}

int main(void) {
   generateLatinSquare(2);
   generateLatinSquare(3);
   generateLatinSquare(4);
   return 0;
}

আউটপুট

আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।

1 2
2 1

1 2 3
3 1 2
2 3 1

1 2 3 4
4 1 2 3
3 4 1 2
2 3 4 1


  1. C++ এ একটি বর্গক্ষেত্রের একটি পরিক্রমাকৃত বৃত্তের ক্ষেত্রফল

  2. C++ এ বর্গক্ষেত্রের জন্য প্রোগ্রাম

  3. C++ এ NaN কি?

  4. পাইথনে ল্যাটিন স্কোয়ার