কম্পিউটার

জাভাস্ক্রিপ্টে অনুপস্থিত অপারেটর পূরণ করে সমীকরণ সম্পূর্ণ করুন


আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একগুচ্ছ সংখ্যা গ্রহণ করে এবং সমীকরণটি সন্তুষ্ট করতে ক্রিয়াকলাপের সঠিক ক্রম ফেরত দেয়। যে অপারেটর ব্যবহার করা যেতে পারে তা হল (+, −, *, /, ^, %)।

যেমন −

Input : 5 3 8          Output : 5+3=8
Input : 9 27 3         Output : 9=27/3
Input : 5 2 25 , 1 5 2 Output : 5^2=25 , 1=5%2

প্রতিটি ইনপুটের জন্য, কমপক্ষে একটি সম্ভাব্য ক্রম আছে, আমাদের কমপক্ষে একটি সঠিক ক্রম ফেরত দিতে হবে৷

এই সমস্যাটি সমাধান করতে আমরা যে অ্যালগরিদমটি ব্যবহার করতে যাচ্ছি তা হল −

  • প্রথমত, আমরা 1 4 7 এর মত একটি পক্ষের বড় সংখ্যাটি বেছে নিই এটি 7 হবে

  • তারপর আমরা মাঝখানে মুখোমুখি একটি সমান করা. 1 4 7 এর মত এটি হবে 1 4=7

  • অবশেষে, আমরা সমীকরণটি সমাধান করি

  • যদি এটি কাজ না করে, আমরা অন্য নম্বর চেষ্টা করি

উদাহরণ

এর জন্য কোড হবে −

const arr = ["5 3 8", "9 27 3", "5 2 25", "1 5 2", "3 3 3 30"];
const findCombination = (arr = []) => {
   const answers = [];
   for(let i = 0; i < arr.length; i++){
      const el = arr[i];
      // using brute force to try solutions
      for(let n = 0; n < 1000; n++){
         const s = el.replace(/ /g, () => "+−
         */^%="[Math.floor(Math.random() * 7)]);
         if(eval(s.replace(/=/g, "===").replace(/\^/g, "**")) === true
         && answers.indexOf(s) === −1){
            answers.push(s);
         };
      };
   }
   return answers;
};
console.log(findCombination(arr));

আউটপুট

এবং কনসোলে আউটপুট হবে −

[
   '5+3=8',
   '9=27/3',
   '5^2=25',
   '1=5%2',
   '3=3%3^30',
   '3^3+3=30',
   '3+3^3=30'
]

  1. জাভাস্ক্রিপ্টে সম্পূর্ণ গ্রাফ ক্লাস

  2. জাভাস্ক্রিপ্টে অপারেটরের উদাহরণ

  3. জাভাস্ক্রিপ্ট স্প্রেড অপারেটর

  4. জাভাস্ক্রিপ্টে গ্রুপিং অপারেটর ব্যাখ্যা কর।