首頁 >後端開發 >php教程 >如何有效率地產生特定範圍內唯一的隨機數?

如何有效率地產生特定範圍內唯一的隨機數?

Barbara Streisand
Barbara Streisand原創
2024-12-14 02:05:09264瀏覽

How Can I Efficiently Generate Unique Random Numbers Within a Specific Range?

產生範圍內的唯一隨機數:最佳化方法

要產生指定範圍內的唯一隨機數,請考慮以下改進方法:

順序打亂的陣列:

  • 建立一個包含所需範圍內的數字的陣列。
  • 使用 shuffle() 隨機化陣列元素的順序。
$numbers = range(1, 20);
shuffle($numbers);

包裝函數:

  • 定義一個函數,封裝用於在一個陣列中產生指定數量的唯一隨機數的邏輯range。
  • 在函數內,建立一個具有所需範圍的數組,打亂其順序,並傳回包含所需元素數量的數組切片。
function UniqueRandomNumbersWithinRange($min, $max, $quantity) {
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $quantity);
}

用法範例:

$result = UniqueRandomNumbersWithinRange(0, 25, 5);

這將產生並傳回一個由5 個唯一隨機排序的陣列0-25 範圍內的數字。

結果範例:

$result = [14, 16, 17, 20, 1]

以上是如何有效率地產生特定範圍內唯一的隨機數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn