কম্পিউটার

C++ এ পরম পার্থক্যের ন্যূনতম যোগফল সহ অ্যারে উপাদান?


এই প্রোগ্রামটি হল অ্যারের ন্যূনতম পরম পার্থক্য খুঁজে বের করার জন্য যে আমাদের কাছে একটি অ্যারে রয়েছে যার আলাদা উপাদান রয়েছে৷ এই ধারণাটি আরও ভালভাবে শিখতে আসুন প্রয়োজনীয় জিনিসগুলি পুনরায় ব্রাশ করি,

অ্যারে একই ডেটা টাইপের উপাদানগুলির একটি ধারক। একটি অ্যারের দৈর্ঘ্য পূর্বনির্ধারিত হওয়া প্রয়োজন।

পরম পার্থক্য দুটি সংখ্যার মধ্যে পার্থক্যের পরম মান অর্থাৎ পার্থক্য সবসময় ধনাত্মক হবে, ঋণাত্মক মান ধনাত্মক তে রূপান্তরিত হবে।

প্রতিটি উপাদানের ন্যূনতম পরম পার্থক্যের যোগফল ন্যূনতম পরম দ্রবণ পার্থক্য সূত্রটি খুঁজে বের করতে হবে

নূন্যতম পরম পার্থক্য (a) =min(abs(a – arr[j]));

যেখানে 1 <=j <=n এবং j !=i, abs পরম মান।

Input: arr = {1, 3, 9, 3, 6}
Output: 8

ব্যাখ্যা

সর্বোত্তম সমাধান হল x =3 বেছে নেওয়া, যা যোগফল তৈরি করে

|1 – 3| + |3 – 3| + |9 – 3| + |3 – 3| =2 + 0 + 6 + 0 =8

অ্যালগরিদম

  • প্রদত্ত ইনপুট অ্যারে সাজানো হয়েছে৷

  • প্রথম-এর জন্য সর্বনিম্ন পরম পার্থক্য অ্যারের উপাদান, দ্বিতীয় অ্যারে উপাদান ব্যবহার করে গণনা করা হয়।

  • শেষের জন্য সর্বনিম্ন পরম পার্থক্য অ্যারে উপাদান, দ্বিতীয় শেষ অ্যারে উপাদান ব্যবহার করেও গণনা করা হয়।

  • , সূচক i এ উপস্থিত অন্যান্য অ্যারের উপাদানগুলির জন্য সর্বনিম্ন পরম পার্থক্য:

  • minAbsDiff =মিনিট( abs(arr[i] – arr[i-1]), abs(ar[i] – arr[i+1])) )

উদাহরণ

#include<iostream>
#include <algorithm>
using namespace std;
int abs_sum(int a[], int len);
int main() {
   int a[]={1, 3, 9, 3, 6};
   int n, i;
   n=5;
   sort(a, a+n);
   int sum = 0;
   sum += abs(a[0]- a[1]);
   sum += abs(a[n-1]-a[n-2]);
   for (int i = 1; i < n-1; i++) {
      sum += min(abs(a[i]-a[i-1]), abs(a[i]-a[i+1]));
   }
   cout<<"The element with minimum sum of absolute differences is : "<<sum;
   return 0;
}

আউটপুট

The element with minimum sum of absolute differences is : 8

  1. C++ এ একটি অ্যারেতে ফ্যাক্টোরিয়ালের যোগফল খুঁজুন

  2. C++ STL-এ অ্যারের যোগফল

  3. C++ এ পরম পার্থক্যের ন্যূনতম যোগফল সহ অ্যারে উপাদান?

  4. C++ সাম অ্যারে ধাঁধা