কম্পিউটার

জাভাস্ক্রিপ্টে একই গড় সহ সংখ্যার অ্যারেকে দুটি অ্যারেতে বিভক্ত করা


আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম এবং একমাত্র যুক্তি হিসাবে পূর্ণসংখ্যার একটি অ্যারে নেয়৷

ফাংশনটি নির্ধারণ করতে হবে যে ইনপুটারের উপাদানগুলির একটি সংমিশ্রণ আছে কিনা যেগুলিকে যখন দুটি গ্রুপে বিভক্ত করা হয় (সমান উপাদান নাও থাকতে পারে) তখন উভয় গ্রুপের গড় একই। যদি এই ধরনের কোন শর্ত বিদ্যমান থাকে তবে ফাংশনটি সত্য, অন্যথায় মিথ্যা প্রত্যাবর্তন করা উচিত।

যেমন −

যদি ইনপুট অ্যারে −

হয়
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

  1. জাভাস্ক্রিপ্ট নম্বরের একটি সাজানো অ্যারেতে একটি সংখ্যা সন্নিবেশ করান

  2. জাভাস্ক্রিপ্টে রিডুস মেথড সহ গড়

  3. জাভাস্ক্রিপ্টে অ্যারের অ্যারেকে একটি অবজেক্টে রূপান্তর করা

  4. জাভাস্ক্রিপ্ট ব্যবহার করে দুটি সাজানো অ্যারেকে এক সাজানো অ্যারেতে মার্জ করা