今天在公司,聽到同事在討論一道演算法題:
現有乙個函式可以得到1~5的隨機數,求如何利用該函式得到1~7的隨機數
本人的方法是 :因為5的二進位制表示為101,7的二進位制表示為111;這樣每次隨機生成1~5,然後取其二進位制的最低位,然後隨機三次,組合,得到,即能隨機得到1~7
而聽同事們講的是 『取模』的方法,由於沒有完全聽到,只是只言片語,求各路大牛不吝賜教。
週末終於知道了 解決方法
設這個隨機得到1-5的函式為f5(), 則隨機得到1-7的函式f7()為 f5()七次後,取其結果之和,除以5,
f7() = (f5() + ... + f5()) / 5
畫個圈圈,表示對5取模和對7取模,轉圈圈
一道this的題目
請問下面 中的this值指向的是全域性物件還是物件o?function f return c var o new f console.log o.constructor.name object這裡的this指向全域性物件,因為 c call without new。這裡用正常的方式呼叫的函式 c 所...
一道演算法題目的解法
有這樣一道演算法題目 144張牌放到若干的盒子中,每個盒子中放10到 40張,問有多少種放法?不考慮順序 由144 10 14.4 144 40 3.6 可得,盒子的數量最少為4,最多為14.假設有n個盒子 4 n 14 每個盒子中分別放 a1,a2,an 張牌,由於不考慮順序,不妨設a1 a2 a...
一道題目 intel
從序列中找四個四字子串形成十進位制數使之乘積最大 就是求四個最大的?我目前只想到如下辦法。這個題並不是關於複雜的演算法,其本意是要利用並行處理,但目前尚未考慮到 除了其中比較求最小值部分有希望用simd include int g teststring int main void int picke...