パラメータとして指定した複数の関数値を返します.


1.質問


2つの入力では、文字列形式で1つの複素数(複素数)が与えられます.複素数はa+biの形で実数と虚数からなる数である.
inputで得られた2つの数に戻りを乗算します.返される式も複数形のstringであるべきです.
複素定義により、(i^2)は-1であるため(i^2)の場合は-1として計算される.
(二乗では表せないので、iの2二乗を(i^2)と表します.)
inputは常にa+bi形式である.outputもa+biの形で現れます.

2.プールコード

const complexNumberMultiply = (a, b) => {
    let firstArr = a.substring(0, a.length-1).split('+');
  const a1 = Number(firstArr[0])
  const a2 = Number(firstArr[1])
console.log(a1, a2)
  let secondArr = b.substring(0, b.length-1).split('+');
  const b1 = Number(secondArr[0])
  const b2 = Number(secondArr[1])
console.log(b1, b2)

  return `${a1 * b1 - a2 * b2}+${a1 * b2 + a2 * b1}i`
}

console.log(complexNumberMultiply("1+1i", "1+1i"))	// 예제

3.コード解析


本当に久しぶりに複数の概念に触れて、グーグルで複数の概念と解題例を見つけました.記憶の中のぼんやりした概念がまた提起された.自分で書くことができなくても、他人が書いたコードを1行1行理解してみましょう.
  • complexNumberMultiplyという関数にaとbという因子を加え、その因子はそれぞれa+biという複素形式を有する.

  • 文字列形式の複素aのiに加えて、firstArr1+1メソッドと、この値にsubstringを除く配列値+とを含む['1','1']という変数を宣言する.
  • a1は、我々が求めたfirstArr変数の0番目のインデックス値であり、Number法により数値に変換される.a2は、我々が求めたfirstArr変数の最初のインデックス値であり、Number法によって数値に変換される.

  • パラメータbに対しても2番と3番のプロシージャのように繰り返される.

  • 最終回車時には、a1 * b11からa2 * b2-i^2を減算して0とし、さらにa1 * b21a2 * b11を加えて2を行った状態でiを加えると2iの値0+2iが得られる.