কম্পিউটার

জাভাস্ক্রিপ্ট ব্যবহার করে দ্বিপদ অভিব্যক্তি প্রসারিত করা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি এক্সপ্রেশন আকারে নেয় (ax+b)^n যেখানে a এবং b হল পূর্ণসংখ্যা যা ধনাত্মক বা ঋণাত্মক হতে পারে, x যেকোন একক অক্ষর পরিবর্তনশীল এবং n হল একটি প্রাকৃতিক সংখ্যা। a =1 হলে, ভেরিয়েবলের সামনে কোন সহগ রাখা হবে না।

আমাদের ফাংশন ax^b+cx^d+ex^f ফর্মে একটি স্ট্রিং হিসাবে প্রসারিত ফর্মটি ফেরত দেবে... যেখানে a, c, এবং e শব্দের সহগ, x হল আসল এক-অক্ষর পরিবর্তনশীল যা মূল অভিব্যক্তিতে পাস করা হয়েছিল এবং b, d, এবং f হল সেই শক্তিগুলি যা x প্রতিটি পদে উত্থাপিত হচ্ছে এবং ক্রমহ্রাসমান ক্রমে রয়েছে

উদাহরণ

নিম্নলিখিত কোড -

const str = '(8a+6)^4';
const trim = value => value === 1 ? '' : value === -1 ? '-' : value
const factorial = (value, total = 1) =>
value <= 1 ? total : factorial(value - 1, total * value)
const find = (str = '') => {
   let [op1, coefficient, variable, op2, constant, power] = str
   .match(/(\W)(\d*)(\w)(\W)(\d+)..(\d+)/)
   .slice(1)
   power = +power
   if (!power) {
      return '1'
   }
   if (power === 1) {
      return str.match(/\((.*)\)/)[1]
   }
   coefficient =
   op1 === '-'
   ? coefficient
   ? -coefficient
   : -1
   : coefficient
   ? +coefficient
   : 1
   constant = op2 === '-' ? -constant : +constant
   const factorials = Array.from({ length: power + 1 }, (_,i) => factorial(i))
   let result = ''
   for (let i = 0, p = power; i <= power; ++i, p = power - i) {
      let judge =
      factorials[power] / (factorials[i] * factorials[p]) *
      (coefficient * p * constant * i)
      if (!judge) {
         continue
      }
      result += p
      ? trim(judge) + variable + (p === 1 ? '' : `^${p}`)
      : judge
      result += '+'
   }
   return result.replace(/\+\-/g, '-').replace(/\+$/, '')
};
console.log(find(str));

আউটপুট

576a^3+1152a^2+576a

  1. ফায়ারবাগ ব্যবহার করে জাভাস্ক্রিপ্ট ডিবাগ করা

  2. জাভাস্ক্রিপ্ট আমদানিতে '{ }' ব্যবহার করছেন?

  3. জাভাস্ক্রিপ্টে নামযুক্ত ফাংশন এক্সপ্রেশন

  4. জাভাস্ক্রিপ্ট ব্যবহার করে একটি ভেরিয়েবলে <text> এর মান বের করবেন?