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

JavaScriptでn次の単位行列を生成する方法

単位行列とは

単位行列(Identity Matrix)とは、対角成分(左上から右下にかけての斜めの要素)がすべて「1」であり、それ以外の要素がすべて「0」である n × n の正方行列のことです。線形代数において非常に重要な行列で、行列の乗算における「1」のような役割を果たします。

例えば、3次の単位行列は以下のように表されます。

const arr = [
    [1, 0, 0],
    [0, 1, 0],
    [0, 0, 1]
];

今回は、数値 n を引数として受け取り、n × n の単位行列を生成して返すJavaScript関数を作成します。

サンプルコード

以下がその実装コードです。

const num = 5;
const constructIdentity = (num = 1) => {
    const res = [];
    for(let i = 0; i < num; i++){
        if(!res[i]){
            res[i] = [];
        };
        for(let j = 0; j < num; j++){
            if(i === j){
                res[i][j] = 1;
            }else{
                res[i][j] = 0;
            };
        };
    };
    return res;
};
console.log(constructIdentity(num));

コードの解説

この関数の仕組みは以下のとおりです。

まず、結果を格納するための空の配列 res を用意します。外側のループ(変数 i)で行を、内側のループ(変数 j)で列を順番に処理していきます。行番号 i と列番号 j が一致する位置(対角成分)には「1」を代入し、それ以外の位置には「0」を代入します。すべての要素を埋め終えたら、完成した二次元配列を return で返します。

実行結果

上記のコードを実行すると、コンソールには以下の出力が表示されます。

[
    [ 1, 0, 0, 0, 0 ],
    [ 0, 1, 0, 0, 0 ],
    [ 0, 0, 1, 0, 0 ],
    [ 0, 0, 0, 1, 0 ],
    [ 0, 0, 0, 0, 1 ]
]

このように、num に任意の数値を渡すだけで、対応するサイズの単位行列を簡単に生成できます。引数を省略した場合はデフォルト値として 1 が使用され、[[1]] という 1 × 1 の単位行列が返される仕組みになっています。

  1. JavaScriptの高階関数(HOF)入門ガイド:基本の使い方からforEach・mapまで徹底解説

    JavaScript開発者であれば、通常の関数を使ったことがあるでしょう。こうした「第一級関数(ファーストオーダー関数)」は、引数として関数を受け取らず、戻り値として関数を返すこともありません。 function hello(name) { return Hello, + + name } console.log(hello(Career Karma)); // Hello, Career Karma 本記事では、高階関数(HOF:Higher Order Function)について解説します。高階関数とは、関数を引数として受け取ったり、戻り値として関数を返したりすることで

  2. JavaScriptの高階関数とは?基本概念とサンプルコードをわかりやすく解説

    高階関数とは?JavaScriptでは、関数はオブジェクトとして扱われます。そのため、関数を別の関数に引数として渡したり、関数の戻り値として別の関数を返したりすることが可能です。JavaScriptの関数は「第一級関数(ファーストクラス関数)」と呼ばれ、変数・オブジェクト・配列などに自由に格納できるという特徴を持っています。そして、関数を引数として受け取る、戻り値として返す、あるいはその両方を行う関数のことを「高階関数(Higher Order Function)」と呼びます。代表的な高階関数には、map()、filter()、reduce()、forEach()などがあります。これらを活用す