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

JavaScriptで指定した数値で割り切れる乱数を生成する方法

JavaScriptでは、引数として受け取った数値で必ず割り切れる乱数を生成したい場面があります。例えば、グリッド配置や一定間隔の値が必要な処理などが挙げられます。

本記事では、数値を1つだけ引数として受け取り、その数値で割り切れるランダムな整数を返す関数の実装方法を解説します。

実装コード

以下のコードでは、デフォルトの上限値を1000000とし、引数で指定した数値(num)の倍数となる乱数を生成しています。

const num = 21;

// n の倍数となる乱数を生成する関数(上限はデフォルトで 1000000)
const specialRandom = (num = 1, limit = 1000000) => {
    // ランダムな数値を取得
    const random = Math.random() * limit;
    // num で割り切れるように四捨五入
    const res = Math.round(random / num) * num;
    return res;
};

console.log(specialRandom(num));

実行結果

コンソールへの出力は次のようになります。

6006

コードの解説

この関数の仕組みは非常にシンプルです。

1. 乱数の生成: Math.random() は0以上1未満の浮動小数点数を返すため、これに上限値 limit を掛けることで、0から1000000までの範囲のランダムな数値を得られます。

2. 倍数への変換: 得られた乱数を num で割り、Math.round() で最も近い整数に丸めてから再び num を掛けます。この操作により、結果は必ず num の倍数になります。

なお、Math.random() を使用しているため、実行するたびに出力結果は異なります。また、引数を省略した場合は num = 1 が適用されるため、通常の乱数生成としても機能します。

  1. JavaScriptでランダムな数値を生成する方法|Math.random()の使い方を解説

    JavaScriptのMath.random()関数は、0以上1未満の範囲でランダムな浮動小数点数を生成するために使用されます。戻り値は「0以上・1未満」であり、1自体は含まれない点に注意してください。この関数を活用すれば、サイコロのようなランダムな整数の生成や、くじ引き・シャッフル処理など、さまざまな場面で乱数を利用できます。Math.random()で1〜10のランダムな整数を生成する方法1から10までのランダムな整数を取得するには、Math.random()の結果に10を掛け、Math.floor()で小数点以下を切り捨てた後、1を加算します。数式で表すと以下のようになります。Math.

  2. JavaScriptで数字パターンを表示する方法【初心者向けサンプルコード】

    本記事では、テキスト入力欄とボタンを備えたJavaScript・HTMLプログラムの作成方法を解説します。ユーザーが入力欄に任意の数値(例:5)を入力してボタンをクリックすると、画面に以下のような数字パターンが表示される仕組みです。(n = 5 の場合の出力例)01 01 02 01 02 03 01 02 03 04 01 02 03 04 05仕組みのポイントこのパターンは二重ループ(ネストしたforループ)を使うことで実現できます。外側のループが「行」を制御し、内側のループがその行に表示する「数字の個数」を制御します。i 行目には 1 から i までの数字が順番に出力されるため、行が進む