আমাদের কাছে পূর্ণসংখ্যার একটি সেট রয়েছে এবং একটি মান রয়েছে যা আমাদের সেটের যোগফল থেকে বিয়োগ করতে হবে৷
এখানে পছন্দ করুন,
[4, 5, 6, 7, 8] − 25
আমরা যদি প্রতিটি সংখ্যা থেকে সমানভাবে বিয়োগ করি, তাহলে আমরা −
পাব[−1, 0, 1, 2, 3]
যাইহোক, আমরা 0 এর কম কোন সংখ্যা চাই না।
অতএব, যদি আমরা এটি করার জন্য একটি অ্যালগরিদম লিখি, তাহলে ঋণাত্মক সংখ্যাগুলি অবশিষ্ট সংখ্যাগুলির সাথে সমানভাবে উপচে পড়বে এবং আমাদের এখন থাকবে −
[0, 0, 1, 2, 3] − 1
ফলস্বরূপ সেট তৈরি করা হচ্ছে -
[0, 0, 1 − 0.333, 2 − 0.333, 3 − 0.333]
মনে রাখবেন যে এটি ঠিক সেই ফলাফল যা আমরা চাই।
সমস্ত নেতিবাচক মান সমানভাবে অবশিষ্ট ধনাত্মক মানগুলিতে উপচে পড়ে৷
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসাবে সংখ্যার অ্যারে এবং দ্বিতীয় আর্গুমেন্ট হিসাবে একটি যোগফল সংখ্যা নেয়৷
তারপর ফাংশনটি সমানভাবে বিয়োগ করা এবং বিতরণ করা অ্যারে গণনা করা উচিত এবং এটি ফেরত দেওয়া উচিত।
উদাহরণ
এর জন্য কোড হবে −
const arr = [4, 5, 6, 7, 8]; const subtract = (arr, sum) => { return arr.map((el, index, array) => { const rem = array.length − index const avg = sum / rem; const toSubtract = Math.min(avg, el); sum −= toSubtract; return el − toSubtract; }); }; console.log(subtract(arr, 25));
আউটপুট
এবং কনসোলে আউটপুট হবে −
[ 0, 0, 0.666666666666667, 1.666666666666666, 2.666666666666666 ]