কম্পিউটার

জাভাস্ক্রিপ্টে পরম মান সমষ্টি মিনিমাইজেশন


ধরুন, আমাদেরকে পূর্ণসংখ্যার একটি সাজানো অ্যারে দেওয়া হয়েছে, আসুন আমরা এটিকে arr বলি। আমাদের এমন একটি পূর্ণসংখ্যা x খুঁজে বের করতে হবে যা −

এর মান
abs(a[0] - x) + abs(a[1] - x) + ... + abs(a[a.length - 1] - x)

সম্ভাব্য ক্ষুদ্রতম (এখানে abs পরম মান নির্দেশ করে)। যদি বেশ কয়েকটি সম্ভাব্য উত্তর থাকে, তাহলে সবচেয়ে ছোটটি আউটপুট করুন।

উদাহরণস্বরূপ -

জন্য,

arr = [2, 4, 7],

আউটপুট −

হওয়া উচিত
absoluteValuesSumMinimization(arr) = 4

কারণ abs(2 - 4) + abs(4 - 4) + abs(7 - 4) =5 যেটি সবচেয়ে ছোট যা আমরা যেকোনো সংখ্যা দিয়ে অর্জন করতে পারি।

আমরা জানি যে,

arr.length/2

অর্ধেক দৈর্ঘ্য ফেরত দেয়।

সমান-দৈর্ঘ্যের অ্যারেগুলির জন্য, এটি মাঝখানের ডানদিকে হবে। বিজোড়-দৈর্ঘ্যের অ্যারেগুলির জন্য, এটি মধ্যম হবে৷

  • প্রয়োজনে Math.ceil(arr.length/2) রাউন্ড আপ করে, তাই 5 এর একটি অ্যারের মাঝখানে হবে 2.5 -> 3। এটি বিজোড়-দৈর্ঘ্যের অ্যারেগুলিকে এক করে বন্ধ করে দেয়।

  • Math.ceil(arr.length/2)-1 একটি সূচক নিচে নেমে যায়। এটি সমস্ত অ্যারের জন্য একের পর এক ত্রুটি সংশোধন করে৷

উদাহরণ

নিম্নলিখিত কোড -

const arr = [2, 4, 7];
const absoluteValuesSumMinimization = (arr = []) => {
   const res = [];
   arr.forEach(num => {
      const sum = arr.reduce((accum, next) => {
         return accum + Math.abs(next - num);
      }, 0);
      res.push(sum);
   });
   const lowest = Math.min(...res);
   return arr[res.indexOf(lowest)];
};
console.log(absoluteValuesSumMinimization(arr));

আউটপুট

নিম্নোক্ত কনসোলে আউটপুট -

4

  1. JavaScript array.values()

  2. কিভাবে একটি জাভাস্ক্রিপ্ট অ্যারে সব অনন্য মান পেতে?

  3. জাভাস্ক্রিপ্ট ব্যবহার করে অ্যারেতে নেস্টেড অবজেক্টের মানের সমষ্টি

  4. জাভাস্ক্রিপ্টে পার্টিশনের গড় সর্বোচ্চ যোগফল