ホームページ >Java >&#&チュートリアル >Math.random() を使用して任意の範囲内でランダムな整数を生成するにはどうすればよいですか?

Math.random() を使用して任意の範囲内でランダムな整数を生成するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-05 12:55:13766ブラウズ

How Can I Generate Random Integers Within Any Range Using Math.random()?

Math.random() Beyond Zero to One

Math.random() は、0 から 1 までの乱数を生成する多用途メソッドです。 。この記事では、Math.random() の機能を利用して、任意の範囲内でランダムな整数を生成する方法について説明します。

ランダムな整数の生成

Math.random() が生成する間、 0 から 1 までの浮動小数点数を使用して、範囲内でランダムな整数を生成することができます。特定の範囲。これを行うには、Math.random() の結果に目的の範囲を乗算し、範囲の最小値を加算します。

たとえば、0 から 100 までの整数を生成するには、次の式を使用します。

(int) Math.floor(Math.random() * 101)

同様に、1 から 100 までの整数を生成するには、 use:

(int) Math.ceil(Math.random() * 100)

任意の範囲でランダムな整数を生成

さらに柔軟性を高めるために、指定された範囲内のランダムな整数を計算する関数を定義できます。次のコードはこれを実現します。

int randomWithRange(int min, int max) {
   int range = (max - min) + 1;     
   return (int)(Math.random() * range) + min;
}

この関数は、目的の範囲の下限と上限を表す 2 つの引数 min と max を受け取ります。最大値と最小値の差に 1 を加えたものとして範囲を計算し、Math.random() を使用してその範囲内の乱数を生成します。次に、乱数を最小値でオフセットして、指定された範囲内の整数を生成します。

たとえば、次のコードは 3 から 5 までのランダムな整数を生成します。

randomWithRange(3, 5)

倍精度乱数

同じ手法を適用して倍精度乱数を生成できます。指定された範囲内:

double randomWithRange(double min, double max) {
   double range = (max - min);     
   return (Math.random() * range) + min;
}

無効な入力の処理

指定された範囲が無効な場合 (例: min > max)、関数は次のことを行うことができます。このような状況を考慮して変更する必要があります:

int randomWithRange(int min, int max) {
   int range = Math.abs(max - min) + 1;     
   return (int)(Math.random() * range) + (min <= max ? min : max);
}

double randomWithRange(double min, double max) {
   double range = Math.abs(max - min);     
   return (Math.random() * range) + (min <= max ? min : max);
}

以上がMath.random() を使用して任意の範囲内でランダムな整数を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。