產生不重複的隨機數:綜合指南
在開發一個隨機化Yelp 列表的網站時,您尋求一種方法確保所有20 個清單在發生任何重複之前都顯示一次。讓我們探索一系列方法來應對這項挑戰。
PHP 的rand(0, 19) 方法
您目前的實作使用PHP 的rand(0, 19) 來產生用於選擇Yelp 清單的隨機索引。然而,這種方法有一個限制:它可以重複數字。為了克服這個問題,我們需要一個更複雜的方法。
打亂一系列數字
一個有效的解決方案是打亂代表列表索引的一系列數字。這可以使用 range() 和 shuffle() 來實現,如下所示:
這將建立一個包含 0 到 19 隨機順序數字的陣列。
使用以下替代解決方案randomGen() 函數
另一種方法是使用自訂randomGen() 函數,該函數接受最小值、最大值和數量作為參數。它會產生指定範圍內的唯一隨機數字列表:
在資料庫中儲存使用過的數字並更新
確保所有清單都顯示無重複,您可以將顯示的清單儲存在資料庫中。每次顯示隨機清單時,請檢查其 ID 是否與資料庫中的任何 ID 相符。如果沒有,則顯示清單並將其 ID 新增至資料庫。重複此過程,直到顯示所有清單。
此方法可確保每個清單在重複發生之前僅顯示一次。
以上是如何為綜合列表隨機產生器產生不重複的隨機數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!