Classes: Dealing with Complex Numbers

Sort by

recency

|

264 Discussions

|

  • + 0 comments

    import math

    class Complex: def init(self, real, imaginary): self.real = real self.imaginary = imaginary

    def __add__(self, other):
        """ Addition of two complex numbers """
        return Complex(self.real + other.real, self.imaginary + other.imaginary)
    
    def __sub__(self, other):
        """ Subtraction of two complex numbers """
        return Complex(self.real - other.real, self.imaginary - other.imaginary)
    
    def __mul__(self, other):
        """ Multiplication of two complex numbers """
        real_part = self.real * other.real - self.imaginary * other.imaginary
        imaginary_part = self.real * other.imaginary + self.imaginary * other.real
        return Complex(real_part, imaginary_part)
    
    def __truediv__(self, other):
        """ Division of two complex numbers """
        denominator = other.real**2 + other.imaginary**2
        if denominator == 0:
            raise ZeroDivisionError("Complex division by zero")
    
        # Multiply the numerator (self) by the conjugate of the denominator
        conjugate = Complex(other.real, -other.imaginary)
        numerator = self * conjugate
        real_part = numerator.real / denominator
        imaginary_part = numerator.imaginary / denominator
        return Complex(real_part, imaginary_part)
    
    def mod(self):
        """ Modulus (magnitude) of the complex number """
        return Complex(math.sqrt(self.real**2 + self.imaginary**2), 0)
    
    def __str__(self):
        """ String representation of the complex number in the format X.XX+Y.YYi """
        if self.imaginary == 0:
            return f"{self.real:.2f}+0.00i"
        elif self.real == 0:
            return f"0.00{'+' if self.imaginary >= 0 else '-'}{abs(self.imaginary):.2f}i"
        else:
            return f"{self.real:.2f}{'+' if self.imaginary >= 0 else '-'}{abs(self.imaginary):.2f}i"
    

    if name == 'main': c = map(float, input().split()) d = map(float, input().split()) x = Complex(*c) y = Complex(*d) print(*map(str, [x+y, x-y, x*y, x/y, x.mod(), y.mod()]), sep='\n')

  • + 0 comments

    class Complex(object): def init(self, real, imaginary): self.real = real self.imaginary = imaginary
    def add(self, no): return Complex(self.real + no.real, self.imaginary + no.imaginary) def sub(self, no): return Complex(self.real - no.real, self.imaginary - no.imaginary)
    def mul(self, no): realpart = self.real*no.real - self.imaginary*no.imaginary imaginarypart = self.real*no.imaginary + no.real*self.imaginary return Complex(realpart, imaginarypart) def truediv(self, no): denom = no.real**2 + no.imaginary**2 realpart = (self.real*no.real + self.imaginary*no.imaginary)/denom imaginarypart = (no.real*self.imaginary-self.real*no.imaginary)/denom return Complex(realpart, imaginarypart) def mod(self): return Complex(math.sqrt(self.real**2 + self.imaginary**2), 0) def str(self): if self.imaginary == 0: result = "%.2f+0.00i" % (self.real) elif self.real == 0: if self.imaginary >= 0: result = "0.00+%.2fi" % (self.imaginary) else: result = "0.00-%.2fi" % (abs(self.imaginary)) elif self.imaginary > 0: result = "%.2f+%.2fi" % (self.real, self.imaginary) else: result = "%.2f-%.2fi" % (self.real, abs(self.imaginary)) return result

  • + 0 comments

    Again, fundementally an excercise in algebra.

  • + 0 comments

    Here is HackerRank Classes: Dealing with Complex Numbers in Python solution - https://programmingoneonone.com/hackerrank-classes-dealing-with-complex-numbers-solution-in-python.html

  • + 0 comments

    i haven't coppied and pase no