Rand() % 14:揭開重複值的奧秘
在程式設計中,rand() 程式常用來產生隨機數字數字函數。然而,一些用戶遇到了一個有趣的問題,即表達式 rand() % 14 始終只產生 6 或 13。
要了解此行為,讓我們深入研究 rand() 的工作原理。它利用 Apple 的梅森同餘生成器 (MCG) 演算法,該演算法涉及特定的乘數。不幸的是,這個乘數可以被 7 整除,導致在有限範圍內產生隨機數時會出現不穩定的行為。
具體來說,呼叫 srand() 後產生的第一個隨機數將只表現出一位模 14 的熵。這意味著它只能假設兩個可能的值:6 或 13。
要解決此問題,有一個簡單的解決方案。只需呼叫 rand() 幾次並丟棄結果即可引入隨機性。這確保了 rand() % 14 中使用的第一個隨機數不受初始播種的影響。
以上是為什麼 `rand() % 14` 有時只會回傳 6 或 13?的詳細內容。更多資訊請關注PHP中文網其他相關文章!