JavaScriptで直方体の対角線の長さを求める方法
問題
JavaScriptで関数を作成し、直方体の「長さ・幅・高さ」の3つの値を受け取り、その対角線(空間対角線)の長さを返すことを目指します。
アプローチ:三平方の定理の三次元への拡張
直方体の対角線は、ピタゴラスの定理(三平方の定理)を三次元に拡張した次の公式で求められます。
d = √(l² + w² + h²)
つまり、各辺の2乗をすべて足し合わせ、その平方根を計算するだけです。JavaScriptでは Math.sqrt() を使うことで簡単に実装できます。
コード例
const height = 10;
const width = 12;
const length = 15;
const findDiagonal = (l, w, h) => {
const ll = l ** 2;
const ww = w ** 2;
const hh = h ** 2;
const sum = ll + ww + hh;
const diagonal = Math.sqrt(sum);
return diagonal;
};
console.log(findDiagonal(length, width, height));
出力
21.656407827766147
コードの解説
このコードでは、まず各辺の値を2乗し(** 演算子を使用)、それらを合計します。最後に Math.sqrt() で平方根を求めることで、直方体の対角線の長さが得られます。
今回の例では、長さ15・幅12・高さ10の直方体に対して、√(15² + 12² + 10²) = √469 ≒ 21.66 という結果が返されます。
-
JavaScriptで文字列の二次元配列をソートして対角要素を見つける方法
本記事では、文字列の配列を扱うJavaScriptのアルゴリズム問題を解説します。「配列をアルファベット順にソートした後、対角線上の文字を抽出する」というシンプルながら応用範囲の広いテクニックを、サンプルコードとともにわかりやすく紹介します。 問題 n個の文字列を要素として持つ配列を受け取るJavaScript関数を作成します。ここで、配列内の各文字列はすべてちょうどn文字で構成されているものとします。つまり、この配列はn×nの正方行列として扱うことができます。 関数には以下の2つの処理が求められます。 まず、配列をアルファベット順(辞書順)にソートすること 次に、ソート後の配列を行列とみな
-
JavaScriptで3つの配列に共通する要素の合計を求める方法
問題今回は、3つの数値型配列を引数として受け取るJavaScript関数を作成します。この関数は、3つの配列すべてに共通して存在する要素だけを抜き出し、それらの合計値を返す必要があります。たとえば、次のような配列が与えられた場合を考えてみましょう。const arr1 = [4, 4, 5, 8, 3]; const arr2 = [7, 3, 7, 4, 1]; const arr3 = [11, 0, 7, 3, 4];この場合、3つの配列すべてに存在するのは「4」と「3」なので、期待される出力は 4 + 3 = 7 となります。解決策のコード例以下がその実装コードです。 { le