LeetCode - 470 解題紀錄 / August LeetCoding Challenge Day 28
題目: LeetCode - 470. Implement Rand10() Using Rand7()
題目說明
給一個 rand7()
會隨機回傳 1 ~ 7 整數的函式 ( 機率相等 ),要求完成 rand10()
。題目要求不要使用函式庫的 rand()
函數。
解題思路
數學問題,取兩次 rand7()
會得到一個 7 * 7 的矩形,前面 40 個可以透過 (7 * (rand7() - 1) + (rand7() - 1)) % 10 + 1
的計算取得 1 ~ 10 的數字且機率相同,若是取得後面 9 個就要重新取。
參考解法
1 | class Solution { |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Larry's notes!
評論