Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन का उपयोग करके लिंक्ड सूचियों के रूप में दिए गए दो बहुपदों को जोड़ने का कार्यक्रम

मान लीजिए, हमें दो बहुपद दिए गए हैं और हमें दो बहुपदों का योग ज्ञात करना है। बहुपदों को लिंक्ड सूचियों के रूप में दर्शाया जाना चाहिए; बहुपद की शर्तों को एक लिंक्ड सूची नोड के रूप में दर्शाया जाएगा। प्रत्येक लिंक्ड लिस्ट नोड में अगले लिंक्ड लिस्ट नोड के लिए गुणांक मान, पावर वैल्यू और पॉइंटर होगा। हमें एक तीसरी लिंक्ड सूची लौटानी होगी जो दो लिंक्ड सूची बहुपदों का जोड़ है।

तो, अगर इनपुट पसंद है

पायथन का उपयोग करके लिंक्ड सूचियों के रूप में दिए गए दो बहुपदों को जोड़ने का कार्यक्रम

1x^1 + 1x^2 =0 और 2x^1 + 3x^0 =0,

तो आउटपुट 3x^1 + 1x^2 + 3x^0 =0

. होगा

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • डमी :=एक नया बहुपद नोड

  • नोड:=एक नया बहुपद नोड

  • जबकि पॉली1 और पॉली2 खाली नहीं है, करें

    • यदि पॉली1 की शक्ति> पॉली2 की शक्ति, तो

      • नोड के आगे :=poly1

      • नोड:=पॉली1

      • poly1 :=poly1 के आगे

    • अन्यथा जब poly1 की शक्ति

      • नोड के आगे :=poly2

      • नोड:=पॉली2

      • poly2 :=poly2 के आगे

    • अन्यथा,

      • coef :=poly1 का गुणांक + poly2 का गुणांक

      • यदि कोफ गैर-शून्य है, तो

        • 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. सी ++ में लिंक्ड लिस्ट का उपयोग करके दो बहुपदों को जोड़ना।

    इस अवधारणा को बेहतर ढंग से समझने के लिए आइए सबसे पहले आवश्यक सभी बुनियादी सामग्री को ब्रश करें। लिंक की गई सूची एक डेटा संरचना है जो सूची के नोड में प्रत्येक तत्व को एक वस्तु के रूप में संग्रहीत करती है। प्रत्येक नोट में दो भाग डेटा होते हैं और अगले नोड से लिंक होते हैं। बहुपद एक गणितीय व्यंजक है

  1. दो नंबर जोड़ने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन हमें दो बड़ी संख्याएं दी जाएंगी और हमें उन्हें जोड़ने और आउटपुट प्रदर्शित करने की आवश्यकता है। ब्रूटफोर्स दृष्टिकोण ऑपरेंड के बीच + ऑपरेटर का उपयोग करेगा या हम दो नंबरों को एक पुनरावर्तनीय में स्

  1. पायथन का उपयोग करके दो मैट्रिक्स कैसे जोड़ें?

    अजगर में 2 मैट्रिक्स जोड़ने का सबसे आसान तरीका है कि उन पर लूप करें और तत्वों को एक-एक करके जोड़ें। उदाहरण के लिए, X = [[1,2,3], [4,5,6], [7,8,9]] Y = [[9,8,7], [6,5,4], [3,2,1]] result = [[0,0,0], [0,0,0], [0,0,0]] for i in range(len(X)):    for j in range(len(X[0])):     &nbs