間にある乱数を取得する必要があります
0 - 80
と
120 - 200
できます
$n1 = rand(0, 80);
$n2 = rand(120, 200);
しかし、私はとの間で選択する必要がありn1
ますn2
。できません
$n3 = rand($n1, $n2)
80 - 120
これは私が避ける必要がある数を私に与えるかもしれないので。
これを解決する方法は?
両方の範囲のサイズが異なるため(1つの数値だけであっても)、ランダムな広がりを確保するには、次のようにする必要があります。
$random = rand( 0, 200 - 39 );
if ($random>=120-39) $random+=39;
最速の方法。:)
これが機能する方法は、それが単一の範囲であると偽って、最初の範囲より上の数値を選択することになった場合、2番目の範囲内に収まるようにそれを増やします。これにより、完全な広がりが保証されます。
両方の範囲のサイズが同じであるため、どちらの範囲を使用するかを簡単に決定できrand(0, 1)
ます。
$n = rand(0, 1) ? rand(0, 80) : rand(120, 200);
PHPには、範囲と呼ばれるこのための新しい関数があります。非常に使いやすく、PHPマニュアルに記載されています。
範囲を取得するための最小/最大数を入力できます。
<?php
echo range(0, 1000);
?
ただし、技術的には、番号範囲として機能する独自の2つの番号を入力することもできます。
2つの乱数$n1と$n2を取得します
$ n1 = rand(0、80); $ n2 = rand(120、200);
$n3という新しい配列を定義します
$ n3 = array();
$n1と$n2を配列に追加します$ n3array_push()関数を使用します
array_push($ n3、$ n1、$ n2);
array_rand()関数を使用して、配列$n3からランダムインデックス$find_indexを検索します。
$ find_index = array_rand($ n3,1);
結果を表示する
エコー$n3[$ find_index];