কম্পিউটার

পাইথন ব্যবহার করে লিঙ্কযুক্ত তালিকা হিসাবে দেওয়া দুটি বহুপদ যোগ করার প্রোগ্রাম


ধরুন, আমাদের দুটি বহুপদ দেওয়া হয়েছে এবং আমাদের দুটি বহুপদীর যোগ বের করতে হবে। বহুপদকে সংযুক্ত তালিকা হিসাবে উপস্থাপন করতে হবে; বহুপদগুলির শর্তাবলী একটি লিঙ্কযুক্ত তালিকা নোড হিসাবে উপস্থাপন করা হবে। প্রতিটি লিঙ্ক করা তালিকা নোডে সহগ মান, পাওয়ার মান এবং পরবর্তী লিঙ্কযুক্ত তালিকা নোডের পয়েন্টার থাকবে। আমাদের একটি তৃতীয় লিঙ্কযুক্ত তালিকা ফেরত দিতে হবে যা দুটি লিঙ্কযুক্ত তালিকা বহুপদীর যোগ।

সুতরাং, যদি ইনপুট মত হয়

পাইথন ব্যবহার করে লিঙ্কযুক্ত তালিকা হিসাবে দেওয়া দুটি বহুপদ যোগ করার প্রোগ্রাম

1x^1 + 1x^2 =0 এবং 2x^1 + 3x^0 =0,

তাহলে আউটপুট হবে 3x^1 + 1x^2 + 3x^0 =0

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • ডামি :=একটি নতুন বহুপদী নোড

  • নোড :=একটি নতুন বহুপদী নোড

  • পলি 1 এবং পলি 2 খালি না থাকলেও করুন

    • পলি 1 এর পাওয়ার> পলি 2 এর পাওয়ার, তাহলে

      • নোডের পরের:=poly1

      • নোড :=poly1

      • poly1 :=poly1 এর পরবর্তী

    • অন্যথায় যখন poly1 এর শক্তি

      • নোডের পরের:=poly2

      • নোড :=poly2

      • poly2 :=poly2 এর পরের

    • অন্যথায়,

      • coef :=poly1 এর সহগ + poly2 এর সহগ

      • যদি coef অ-শূন্য হয়, তাহলে

        • poly1 :=poly1 এর পরবর্তী

        • poly2 :=poly2 এর পরের

  • নোডের পরের:=poly1 বা poly2

  • ডামির পরবর্তী ফিরে আসুন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

class polynomial:
def __init__(self, coeff = 0, pow = 0, nxt = None):
   self.coefficient = coeff
   self.power = pow
   self.next = nxt
def create_poly(expression):
   head = None
   for element in expression:
      if head == None:
         head = polynomial(element[0], element[1])
      else:
         temp = head
      while temp.next != None:
         temp = temp.next
         if temp.next == None:
            temp.next = polynomial(element[0], element[1])
            return head
def show_poly(head):
   temp = head
   while temp.next != None:
      print(str(temp.coefficient) + 'x^' + str(temp.power), end = ' + ')
      temp = temp.next
      if temp.next == None:
         print(str(temp.coefficient) + 'x^' + str(temp.power), end=' = 0')
def solve(poly1, poly2):
   dummy = node = polynomial()
   while poly1 and poly2:
      if poly1.power > poly2.power:
         node.next = node = poly1
         poly1 = poly1.next
      elif poly1.power < poly2.power:
         node.next = node = poly2
         poly2 = poly2.next
      else:
         coef = poly1.coefficient + poly2.coefficient
      if coef: node.next = node = polynomial(coef, poly1.power)
         poly1 = poly1.next
         poly2 = poly2.next
         node.next = poly1 or poly2
   return dummy.next
poly1 = create_poly([[1,1], [1,2]])
poly2 = create_poly([[2,1], [3, 0]])
poly3 = solve(poly1, poly2)
show_poly(poly3)

ইনপুট

poly1 = create_poly([[1,1], [1,2]])
poly2 = create_poly([[2,1], [3, 0]])

আউটপুট

3x^1 + 1x^2 + 3x^0 = 0

  1. লিঙ্ক করা তালিকা ব্যবহার করে রান দৈর্ঘ্য এনকোডিং বাস্তবায়নের জন্য C++ প্রোগ্রাম

  2. C++ এ লিঙ্কড লিস্ট ব্যবহার করে দুটি বহুপদ যোগ করা হচ্ছে।

  3. পাইথন প্রোগ্রাম দুটি সংখ্যা যোগ করতে

  4. পাইথন ব্যবহার করে কিভাবে দুটি ম্যাট্রিক্স যোগ করবেন?