কম্পিউটার

2N সংখ্যার একটি পারমুটেশন খুঁজুন যাতে প্রদত্ত রাশির ফলাফল C++ এ ঠিক 2K হয়


ধরুন আমাদের দুটি পূর্ণসংখ্যা N এবং K আছে। আমাদের 2N সংখ্যার প্রাকৃতিক সংখ্যার প্রথম স্থানান্তর খুঁজে বের করতে হবে, যেমন নিম্নলিখিত সমীকরণটি সন্তুষ্ট হয়।

$$\displaystyle\sum\limits_{i=1}^N\lvert A_{2i-1}-A_{2i}\rvert+\lvert \displaystyle\sum\limits_{i=1}^N A_{2i-1 }-A_{2i} \rvert=2K$$

K-এর মান N এর থেকে কম বা সমান হওয়া উচিত। উদাহরণস্বরূপ, যদি N =4 এবং K =1 হয়, তাহলে আউটপুট হবে 2 1 3 4। প্রদত্ত রাশিটির ফলাফল হবে (|2 – 1| + | 3 – 4|) – (|2 – 1 + 3 – 4|) =2।

ধারণাটি সহজ, বিবেচনা করুন আমাদের 1, 2, 3, 4, 5, 6, ... এর মতো একটি সাজানো ক্রম রয়েছে। যদি আমরা যেকোন দুটি সূচক 2i – 1 এবং 2i অদলবদল করি, ফলাফলটি ঠিক 2 দ্বারা বৃদ্ধি পাবে। আমাদের কে এই ধরনের অদলবদল করতে হবে।

উদাহরণ

#include<iostream>
using namespace std;
void showPermutations(int n, int k) {
   for (int i = 1; i <= n; i++) {
      int a = 2 * i - 1;
      int b = 2 * i;
      if (i <= k)
         cout << b << " " << a << " ";
      else
         cout << a << " " << b << " ";
   }
}
int main() {
   int n = 4, k = 2;
   showPermutations(n, k);
}

আউটপুট

2 1 4 3 5 6 7 8

  1. A এবং b সংখ্যাগুলি খুঁজুন যা C++ এ প্রদত্ত শর্ত পূরণ করে

  2. এমন একটি বিন্দু খুঁজুন যাতে ম্যানহাটনের দূরত্বের যোগফল C++ এ ন্যূনতম হয়

  3. প্রদত্ত পরিসরে একটি স্বতন্ত্র জোড়া (x, y) খুঁজুন যেমন x y কে C++ এ ভাগ করে

  4. C++ এ প্রদত্ত সূচক সহ N Fibonacci সংখ্যার GCD খুঁজুন