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