JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで虚数単位i(イオタ)のn乗の値を求める方法


問題

数値 n を受け取り、虚数単位 i の n 乗(in)の値を返すJavaScript関数を作成する必要があります。

ここで、虚数単位 i は次のように定義されます。

i = (-1)1/2

したがって、i のべき乗は以下のように4を周期として循環します。

i1 = i
i2 = -1
i3 = -i
i4 = 1(以降繰り返し)

解決のアプローチ

i のべき乗は4回ごとに同じ値に戻るため、巨大な指数を実際に計算する必要はありません。そこで、剰余演算子(%)を使って n を 4 で割った余り を求め、その結果に応じて答えを判定します。

  • n % 4 === 0 → 「1」
  • n % 4 === 1 → 「i」
  • n % 4 === 2 → 「-1」
  • n % 4 === 3 → 「-i」

コード例

以下が実際のコードです。

const num = 657;
const findNthPower = (num = 1) => {
    switch(num % 4){
        case 0:
            return '1';
        case 1:
            return 'i';
        case 2:
            return '-1';
        case 3:
            return '-i';
    };
};
console.log(findNthPower(num));

出力

i

解説

この例では num = 657 であり、657 ÷ 4 の余りは 1 となるため、関数は「i」を返します。つまり、i657 = i という結果になります。

この手法のポイントは、指数がどれほど大きな数であっても、一度の剰余演算と switch 文だけで定数時間 O(1) で答えを導き出せることです。複素数ライブラリを使わずに済むため、シンプルかつ高速に処理できます。

  1. JavaScriptで<text>要素の値を変数に抽出する方法

    JavaScriptで要素の値を変数に抽出するにはSVGの<text>要素のテキスト値を変数に抽出したい場合は、textContentプロパティを使用します。基本的な書き方は以下の通りです。document.getElementById(yourTextIdValue).textContentgetElementById()メソッドで対象の要素をIDから取得し、そのtextContentプロパティを参照することで、要素内のテキストを文字列として変数に格納できます。textContentとinnerHTMLの違いなお、SVG要素の場合はinnerHTMLよりもtextContentを

  2. SeleniumでJavaScriptコードの戻り値を取得する方法

    Selenium WebDriverを使用すると、JavaScriptコードの戻り値を取得することができます。SeleniumはexecuteScriptメソッドを利用してJavaScriptコマンドを実行でき、実行したいJavaScriptコマンドはこのメソッドの引数として渡します。 JavaScriptコードから値を返す際にはreturnキーワードを使用します。また、JavaScriptを操作するためには、import org.openqa.selenium.JavascriptExecutorというインポート文を追加する必要がある点にも注意してください。 構文 JavascriptEx