2つの複素数の積の結果を求めます
質問する
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の形で現れなければならない.
ぶんせき
複素数には実数と虚数が含まれており、まず数値に分解して計算します.
(a+bi)*(c++di)の場合、実数a、b、c、dを取り外して(axc)+(axdi)+(bixc)+(bixdi)を計算する必要があります.最後はiの平方なので、-1に乗じる必要があります.
に答える
[最初の回答]
[python機能を使用して改善された解答]
解析
この問題の核心は,複数形式のstringからエラーを抽出して計算し,python機能を用いてどれだけ短いコードで実現するかが鍵となる複素stringとして提供することである.
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の形で現れなければならない.
ぶんせき
複素数には実数と虚数が含まれており、まず数値に分解して計算します.
(a+bi)*(c++di)の場合、実数a、b、c、dを取り外して(axc)+(axdi)+(bixc)+(bixdi)を計算する必要があります.最後はiの平方なので、-1に乗じる必要があります.
に答える
[最初の回答]
def complex_number_multiply(a, b):
first = a.split('+')
second = b.split('+')
real = int(first[0]) * int(second[0]) \
+ (int((first[1].split('i'))[0]) * int((second[1].split('i'))[0]) * -1)
fake = int(first[0]) * int((second[1].split('i'))[0]) + int((first[1].split('i'))[0]) \
* int(second[0])
return f"{real}+{fake}i"
以上の方法は私が初めて試した方法です.転送処理は,計算式の可読性が悪い.[python機能を使用して改善された解答]
def complex_number_multiply(a,b):
a1, a2 = map(int, a[:-1].split('i'))
b1, b2 = map(int, b[:-1].split('i'))
return "%d+%di" % ((a1 * b1) + (a2 * b2), (a1 * b2) + (a2 * b1))
Pythonのmapとstring format機能を使用してソースコードを簡略化解析
この問題の核心は,複数形式のstringからエラーを抽出して計算し,python機能を用いてどれだけ短いコードで実現するかが鍵となる複素stringとして提供することである.
Reference
この問題について(2つの複素数の積の結果を求めます), 我々は、より多くの情報をここで見つけました https://velog.io/@jinybear/2개의-복소수의-곱의-결과를-구하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol