দুটি অ্যারের উপাদান একে অপরের সাথে গুণ করে যোগফল সর্বোচ্চ করার পদ্ধতি (Rearrangement Inequality)।
নিয়ম
সর্বোচ্চ যোগফলের জন্য: দুই অ্যারেই একই অর্ডারে সোর্ট করুন (দুইটো ascending বা দুটি descending)।
উদাহরণ
arr1 = [5, 1, 3, 4, 2] arr2 = [8, 10, 9, 7, 6] সোর্টেড (descending): arr1: [5, 4, 3, 2, 1] arr2: [10, 9, 8, 7, 6] গুণফল যোগফল: 5×10 + 4×9 + 3×8 + 2×7 + 1×6 = 130
সমাধান
const maxProductSum = (arr1, arr2) => {
if (arr1.length !== arr2.length) {
throw new Error('Arrays must have same length');
}
// দুটোই descending সোর্ট
const sorted1 = [...arr1].sort((a, b) => b - a);
const sorted2 = [...arr2].sort((a, b) => b - a);
return sorted1.reduce((sum, val, i) => sum + val * sorted2[i], 0);
};
// টেস্ট
const arr1 = [5, 1, 3, 4, 2];
const arr2 = [8, 10, 9, 7, 6];
console.log(maxProductSum(arr1, arr2)); // 130
// যাচাই: অন্য পেয়ারিং দিয়ে
// 5×6 + 1×7 + 3×9 + 4×10 + 2×8 = 30+7+27+40+16 = 120 < 130
গাণিতিক পृष্ঠভূমি (Rearrangement Inequality)
দুটি একই অর্ডারের সিকোয়েন্সের জন্য, উপাদানজোড়া একই র্যাঙ্কের সাথে গুণ করলে যোগফল সর্বোচ্চ হয়।
- Ascending × Ascending = Max
- Descending × Descending = Max
- Ascending × Descending = Min
উৎপাদন
130