আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম এবং একমাত্র যুক্তি হিসাবে পূর্ণসংখ্যার একটি অ্যারে নেয়৷
ফাংশনটি নির্ধারণ করতে হবে যে ইনপুটারের উপাদানগুলির একটি সংমিশ্রণ আছে কিনা যেগুলিকে যখন দুটি গ্রুপে বিভক্ত করা হয় (সমান উপাদান নাও থাকতে পারে) তখন উভয় গ্রুপের গড় একই। যদি এই ধরনের কোন শর্ত বিদ্যমান থাকে তবে ফাংশনটি সত্য, অন্যথায় মিথ্যা প্রত্যাবর্তন করা উচিত।
যেমন −
যদি ইনপুট অ্যারে −
হয়const arr = [6, 3, 2, 8, 1, 5, 7, 4];
তারপর আউটপুট −
হওয়া উচিতconst output = true;
কারণ সংমিশ্রণ হল [8, 1, 5, 4] এবং [6, 3, 2, 7] কারণ উভয় গ্রুপের গড় 4.5
উদাহরণ
নিম্নলিখিত কোড -
const arr = [6, 3, 2, 8, 1, 5, 7, 4]; const canHaveEqualAveragePartition = (arr = []) => { const sum = arr.reduce((acc, val) => acc + val); const array = Array(sum+1).fill(false).map(() => Array(arr.length+1).fill(false)); array[0][0] = true; for(let i=0; i < arr.length; ++i){ for(let j=sum - arr[i];j>=0;--j){ for(let k=arr.length-2;k>=0;--k){ if(array[j][k]){ array[j + arr[i]][k+1] = true; if((j + arr[i]) * (arr.length - k - 1) == (sum - j -arr[i]) * (k + 1)){ return true; } } } } } return false; }; console.log(canHaveEqualAveragePartition(arr));
আউটপুট
নিম্নোক্ত কনসোল আউটপুট -
true