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

पायथन में कॉम्प्लेक्स नंबर ऑब्जेक्ट्स के लिए क्लास परिभाषित करने का प्रोग्राम


मान लीजिए हम निम्न ऑपरेशंस के साथ एक कॉम्प्लेक्स नंबर क्लास परिभाषित करके कॉम्प्लेक्स नंबर के कार्य करना चाहते हैं:

  • add() दो कॉम्प्लेक्स नंबर जोड़ने के लिए
  • sub() दो कॉम्प्लेक्स नंबर घटाने के लिए
  • mul() दो कॉम्प्लेक्स नंबर गुणा करने के लिए
  • div() दो कॉम्प्लेक्स नंबर विभाजित करने के लिए
  • mod() कॉम्प्लेक्स नंबर का मॉड्यूलस प्राप्त करने के लिए

कॉम्प्लेक्स नंबर (a + bi) के रूप में दिखाए जाएंगे। हमारे पास दो कॉम्प्लेक्स नंबर हैं, हम उन पर ये ऑपरेशन करेंगे। क्लास के अंदर हम add(), sub(), mul() और div() मेथड्स को ओवरलोड करते हैं ताकि हम ऑपरेटर्स का उपयोग करके ऑपरेशन कर सकें। हम __str__() मेथड को भी ओवरलोड करते हैं ताकि कॉम्प्लेक्स नंबर को उचित रूप में प्रिंट किया जा सके।

उदाहरण के लिए, यदि इनपुट c1 = 2+3i c2 = 5-2i है, तो आउटपुट (7.00 + 1.00i), (-3.00 + 5.00i), (16.00 + 11.00i), (0.14 + 0.66i), 3.61, 5.39 होगा।

समाधान दृष्टिकोण

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

  • real part re और imaginary part im के साथ कॉम्प्लेक्स क्लास परिभाषित करें
  • add() फंक्शन परिभाषित करें। यह o लेगा
    • (re + o.re, im + o.im) के साथ एक नया कॉम्प्लेक्स ऑब्जेक्ट लौटाएं
  • sub() फंक्शन परिभाषित करें। यह o लेगा
    • (re - o.re, im - o.im) के साथ एक नया कॉम्प्लेक्स ऑब्जेक्ट लौटाएं
  • mul() फंक्शन परिभाषित करें। यह o लेगा
    • (re * o.re - im * o.im, re * o.im + im * o.re) के साथ एक नया कॉम्प्लेक्स ऑब्जेक्ट लौटाएं
  • div() फंक्शन परिभाषित करें। यह o लेगा
    • m := o.re * o.re + o.im * o.im
    • ((re * o.re + im * o.im)/m, (im * o.re - re * o.im)/m) के साथ एक नया कॉम्प्लेक्स नंबर ऑब्जेक्ट लौटाएं
  • mod() फंक्शन परिभाषित करें। यह लेगा
    • (re * re + im * im) का वर्गमूल लौटाएं
  • __str__() ओवरलोड करें।
    • यदि im 0 के समान है, तो re को दो दशमलव स्थानों तक लौटाएं
    • यदि re 0 के समान है, तो im को दो दशमलव स्थानों तक लौटाएं
    • यदि im < 0, तो re - im i लौटाएं, दोनों (re और im दो दशमलव स्थानों तक)
    • अन्यथा, re + im i लौटाएं, दोनों (re और im दो दशमलव स्थानों तक)

उदाहरण

बेहतर समझ के लिए निम्न कार्यान्वयन देखें:

from math import sqrt

class Complex:
    def __init__(self, real, imag):
        self.re = real
        self.im = imag
    
    def __add__(self, o):
        return Complex(self.re+o.re, self.im+o.im)
    
    def __sub__(self, o):
        return Complex(self.re-o.re, self.im-o.im)
    
    def __mul__(self, o):
        return Complex(self.re*o.re-self.im*o.im, self.re * o.im + self.im * o.re)
    
    def __truediv__(self, o):
        m = o.re * o.re + o.im * o.im
        return Complex((self.re * o.re + self.im * o.im)/m, (self.im * o.re - self.re * o.im)/m)
    
    def __str__(self):
        if self.im == 0:
            return '%.2f' % self.re
        if self.re == 0:
            return '%.2fi' % self.im
        if self.im < 0:
            return '%.2f - %.2fi' % (self.re, -self.im)
        else:
            return '%.2f + %.2fi' % (self.re, self.im)
    
    def mod(self):
        return sqrt(self.re*self.re+self.im*self.im)

def solve(comp1, comp2):
    print(comp1 + comp2)
    print(comp1 - comp2)
    print(comp1 * comp2)
    print(comp1 / comp2)
    print('%.2f' % comp1.mod())
    print('%.2f' % comp2.mod())

comp1 = Complex(2, 3)
comp2 = Complex(5, -2)
solve(comp1, comp2)

इनपुट

2, 3 5, -2

आउटपुट

7.00 + 1.00i -3.00 + 5.00i 16.00 + 11.00i 0.14 + 0.66i 3.61 5.39
  1. पायथन प्रोग्राम: nth फाइबोनैचि संख्या ज्ञात करें पायथन प्रोग्राम: nth फाइबोनैचि संख्या ज्ञात करें

    इस लेख में, हम nth फाइबोनैचि संख्या की गणना करेंगे।एक फाइबोनैचि संख्या नीचे दिए गए पुनरावृत्ति संबंध द्वारा परिभाषित की जाती है -Fn = Fn-1 + Fn-2साथ में F₀ = 0 और F₁ = 1।पहली कुछ फाइबोनैचि संख्याएं हैं0, 1, 1, 2, 3, 5, 8, 13, ................हम फाइबोनैचि संख्याओं की गणना रिकर्सन और डायनामिक प्रोग्रा

  1. पायथन प्रोग्राम: nth कैटलन संख्या ज्ञात करें पायथन प्रोग्राम: nth कैटलन संख्या ज्ञात करें

    इस लेख में, हम nth कैटलन संख्या की गणना के बारे में जानेंगे।कैटलन संख्याएं प्राकृतिक संख्याओं का एक क्रम है जिसे पुनरावर्ती सूत्र द्वारा परिभाषित किया जाता है -$$C_{0}= 1\:and\:C_{n+1}=\displaystyle\sum\limits_{i=0}^n C_{i}C_{n-i} for \:n\geq0;$$n = 0, 1, 2, 3, ... के लिए पहली कुछ कैटलन संख्याएं 1,

  1. पायथन प्रोग्राम: जांचें कि दी गई संख्या फाइबोनैचि संख्या है या नहीं पायथन प्रोग्राम: जांचें कि दी गई संख्या फाइबोनैचि संख्या है या नहीं

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे -समस्या कथनएक संख्या n दी गई है, जांचें कि क्या n एक फाइबोनैचि संख्या है या नहींहम सभी जानते हैं कि nth फाइबोनैचि संख्या पिछली दो फाइबोनैचि संख्याओं का योग है। लेकिन वे पुनरावृत्ति संबंध के अलावा एक दिलचस्प संबंध भी प्रदान करते हैं।