codekata #10


codekata_0510


質問する


2つの入力は、文字列形式で1つの複素数(複素数)を与えます.
複素数はa+bi形式の実数と虚数である.
受け取った2つの数にinputを乗じて返してください.
返される表現も複数形の文字列でなければなりません.
複数定義により、(i^2)は-1なので(i^2)の場合は-1で計算してください.
  • は平方表示がなく、iの2平方(i^2)を表す.
  •  

    例1:


    Input: "1+1i", "1+1i"
    Output: "0+2i"
    説明:
    (1 + i) * (1 + i) = 1 + i + i + i^2 = 2i
    2 iを複数形にすると0+2 i
     

    例2:


    Input: "1+-1i", "1+-1i"
    Output: "0+-2i"
    説明:
    (1 - i) * (1 - i) = 1 - i - i + i^2 = -2i,
    -2 iを複数形にすると0+-2 iになります.
     

    例3:


    Input: "1+3i", "1+-2i"
    Output: "7+1i"
    説明:
    (1 + 3i) * (1 - 2i) = 1 - 2i + 3i -6(i^2) = 1 + i + 6,
    7+iを複数形にすると7+1 i
     

    家庭


    inputは常にa+bi形式である.
    outputもa+biの形で現れなければならない.

    need to know

  • まず複数を理解し、
  • 理解
  • は最終的にa+bi形式で行われ、
  • アルファベットと数字が一緒なら、数字を乗じてはいけません.--まず数字を出してください.

    メールで編集します。

  • はまずa+biの形式であるため,最後の1つをインデックスで消去しsplitを用いて配布する.
  • その後、インデックスごとに変数を指定し、intに変更します.
  • で計算すればいいです.
  • そして「+」で加算…!
  • 正解

    def complex_number_multiply(a, b):
          a = a[:-1].split("+")
          b = b[:-1].split("+")
          a1 = int(a[0])
          a2 = int(a[1])
          b1 = int(b[0])
          b2 = int(b[1])
          result = ((a1*b1) - (a2*b2)), ((a1 * b2) + (a2 * b1))
          return  str(result[0]) + "+" + str(result[1]) + "i"

    リファレンス

  • split()
  • [:-1]
  • 文字列間で+
  • を使用