咋一看,這是個很簡單的問題,但是如果n是個不確定的數呢?比如服務器每天會收到數以億計的請求,但是目前服務器端不希望保存所有的請求,只想隨機保存這些請求中的m個。試設計一種算法,能夠使服務器實時保存m個請求,並使這些請求是從所有請求中的大致等概率被選中的結果。注意:不到一天的結束,是不能提前知道當天 ...
從 到m 這m個數中隨機取出n個 n lt m 要求每個數被取到的可能性相等。第一個方法是把這m個數丟到一個List里面 然后用nextInt list.size 來產生隨機數 然后把list里面對應的元素丟到另一個數組或者list里面 這個方法本來是不錯的 但要注意的是 為了保證每個元素取到的概率相等 需要每取出一個元素 就把它從list里面刪除 原因就不解釋了 簡單的概率問題。但眾所周知的是 ...
2017-05-14 11:36 0 1901 推薦指數:
咋一看,這是個很簡單的問題,但是如果n是個不確定的數呢?比如服務器每天會收到數以億計的請求,但是目前服務器端不希望保存所有的請求,只想隨機保存這些請求中的m個。試設計一種算法,能夠使服務器實時保存m個請求,並使這些請求是從所有請求中的大致等概率被選中的結果。注意:不到一天的結束,是不能提前知道當天 ...
思路:如果n個數本身是隨機的,那么直接輸出頭m個數即可;但事實上並不知道這n個數本身是不是隨機排列,所以可以用某種方法讓前面m個數變成隨機的,然后直接輸出前m個數。方法即是產生隨機數random,然后將a[random]與前面的a[i]交換,i為0、1、2……m。比如第一次,是將a[random ...
Technorati 標簽: 組合, 概率 從N個不同的球中取出M個,一共有多少種取法? 這個問題是組合數據的基本問題,考慮拿出球是否放回,拿出去的球是否有序,它有4種變體: 不放回,有序; 不放回,無序; 放回,無序; 放回,有序; 對於第一種,取出M個球 ...
轉自作業幫https://www.zybang.com/question/a12eaf411fa8085fd93d4a3756fbee75.html 有很多算法,復雜度也不盡相同.以下簡單舉幾個例子:1.n×m遍掃描【算法基本描述】n×m遍掃描【算法思想】每次都掃描一遍數組,取出最大 ...
前言 一位正在學習前端的菜鳥,雖菜,但還未放棄。 給大家畫張圖了解思路 以下是代碼 ...
("美國"); list.add("德國"); //把隨機取得的數據存儲在 listRa ...
1.從數組items中隨機取出一個元素 2.從前面的一篇隨機數組中隨機取幾個元素 ...
最近有一個需求,比較簡單,就是如標題所說的,從N個元素中隨機取m個元素,當然這m個元素是不能存在重復的。本以為這么簡單的需求,應該有現成的工具類來實現,但是幾次查找居然沒找到(有知道的可以推薦下哈^_^)。只好自己實現了下。 自己的實現思路也不知道是不是有問題,或者還有沒有更好的思路 ...