JavaScriptで2つの整数間のランダムな整数を生成する方法
本記事では、ちょうど2つの数値を要素として持つ配列(範囲の指定)を受け取り、その範囲内(両端を含む)に収まるランダムな整数を生成するJavaScript関数の作成方法を解説します。
ランダムな数値の生成には標準組み込みオブジェクトの Math.random() を使用し、小数点以下を切り捨てて整数化するために Math.floor() を組み合わせます。
実装コード
const range = [5, 15];
const randomBetween = ([min, max]) => {
// +1 することで最大値も範囲に含める
const random = Math.random() * (max - min + 1);
const whole = Math.floor(random) + min;
return whole;
};
for(let i = 0; i < 10; i++){
console.log(randomBetween(range));
}コードのポイント
- 分割代入:引数
[min, max]で配列から最小値と最大値を直接取り出しています。 - +1 の意味:
max - minだけだと最大値が範囲に含まれないため、+1を加えることで両端を含む範囲になります。 - Math.floor():0以上1未満のランダムな小数を、指定範囲の大きさに掛けた後、切り捨てて整数に変換します。
出力結果
コンソールへの出力は以下のようになります。
13 10 6 10 12 5 14 13 11 6
なお、Math.random() の性質上、この出力は実行するたびに異なる結果となります。
-
JavaScriptで2つのIPアドレス間に存在するアドレス数を求める方法
問題2つのIPv4アドレスを引数として受け取り、その間に存在するIPアドレスの総数を返すJavaScript関数を作成します。ここでいう「間」とは、最初のアドレスを含み、最後のアドレスは含まない範囲を指します。IPv4アドレスは「0〜255の数値(オクテット)」を4つドットでつないだ構造になっており、各オクテットは256進法の1桁とみなすことができます。そのため、IPアドレス全体を1つの10進数に変換し、両者の差の絶対値を求めれば、間に存在するアドレス数を簡単に計算できます。考え方:オクテットごとの重み各オクテットには、左から順に次の重みが対応します。第1オクテット:2563(16,777,2
-
2つの整数の間のアームストロング数の求め方|C言語サンプルコード付きで解説
アームストロング数とは?アームストロング数(Armstrong Number)とは、n桁の整数の各桁を取り出してそれぞれn乗し、それらを合計した値が元の数と一致するような整数のことです。数式で表すと次のようになります。abcd... = an + bn + cn + dn + ...特に3桁のアームストロング数の場合は、「各桁の数字の3乗の和がその数自身と等しい」という条件になります。最も有名な例が 153 です。153 = 13 + 53 + 33 = 1 + 125 + 27 = 153つまり、153 はアームストロング数です。ほかにも、370、371、407 などが3桁のアームストロング