কম্পিউটার

|ai + aj – k| এর ন্যূনতম সম্ভাব্য মান C++ এ প্রদত্ত অ্যারে এবং k-এর জন্য


সমস্যা বিবৃতি

আপনাকে n পূর্ণসংখ্যা এবং একটি পূর্ণসংখ্যা K এর একটি অ্যারে দেওয়া হয়েছে। মোট অক্রমবিহীন জোড়ার সংখ্যা খুঁজে বের করুন {i, j} যেমন |ai + aj – k| এর পরম মান। ন্যূনতম সম্ভব যেখানে i !=j.

উদাহরণ

যদি arr[ ] ={0, 4, 6, 2, 4} এবং k =7 হয় তবে আমরা 1 হিসাবে ন্যূনতম মান সহ নিম্নলিখিত 5 জোড়া তৈরি করতে পারি

{0, 6}, {4, 2}, {4, 4}, {6, 2}, {2, 4}

অ্যালগরিদম

সমস্ত সম্ভাব্য জোড়ার উপর পুনরাবৃত্তি করুন এবং প্রতিটি জোড়ার জন্য আমরা পরীক্ষা করব যে (ai + aj – K) এর মান আমাদের বর্তমান ক্ষুদ্রতম মানের নট থেকে ছোট কিনা। সুতরাং উপরের অবস্থার ফলাফল অনুসারে আমাদের মোট তিনটি ক্ষেত্রে রয়েছে -

  • abs( ai + aj – K)> সবচেয়ে ছোট − কিছুই করবেন না কারণ এই জোড়াটি ন্যূনতম সম্ভাব্য মানের মধ্যে গণনা করা হবে না।
  • abs(ai + aj – K) =ক্ষুদ্রতম − জোড়ার সংখ্যা বৃদ্ধি করে যার ফলে ন্যূনতম সম্ভাব্য মান।
  • abs( ai + aj – K) <ক্ষুদ্রতম − ক্ষুদ্রতম মান আপডেট করুন এবং গণনা 1 এ সেট করুন।

উদাহরণ

#include <iostream>
#include <climits>
#include <cmath>
using namespace std;
void getPairs(int *arr, int n, int k) {
   int minValue = INT_MAX;
   int pairs = 0;
   for (int i = 0; i < n; ++i) {
      for (int j = i + 1; j < n; ++j) {
         int val = abs(arr[i] + arr[j] - k); if (val < minValue) {
            minValue = val;
            pairs = 1;
         } else if (val == minValue) {
            ++pairs;
         }
      }
   }
   cout << "Min value = " << minValue << endl; cout << "Total pairs = " << pairs << endl;
}
int main() {
   int arr[] = {0, 4, 6, 2, 4};
   int k = 7;
   int n = sizeof(arr) / sizeof(arr[0]);
   getPairs(arr, n, k);
   return 0;
}

আউটপুট

আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট −

তৈরি করে
Min value= 1
Total pairs = 5

  1. C++ এ X =P*A + Q*B তে প্রদত্ত A এবং B এর জন্য X এর ন্যূনতম ধনাত্মক পূর্ণসংখ্যার মান সম্ভাব্য

  2. C++ এ অ্যারের প্রতিটি উপাদানের জন্য নিকটতম মান খুঁজুন

  3. C++-এ অ্যারের প্রতিটি উপাদানের জন্য নিকটতম বৃহত্তর মান খুঁজুন

  4. C++ এ সম্ভাব্য সকল সাব-অ্যারেগুলির মধ্যে ন্যূনতম LCM এবং GCD সম্ভব