原文:從M個數中隨機等可能的取出N個的問題

從 到m 這m個數中隨機取出n個 n lt m 要求每個數被取到的可能性相等。第一個方法是把這m個數丟到一個List里面 然后用nextInt list.size 來產生隨機數 然后把list里面對應的元素丟到另一個數組或者list里面 這個方法本來是不錯的 但要注意的是 為了保證每個元素取到的概率相等 需要每取出一個元素 就把它從list里面刪除 原因就不解釋了 簡單的概率問題。但眾所周知的是 ...

2017-05-14 11:36 0 1901 推薦指數:

查看詳情

n個數隨機選取m

咋一看,這是個很簡單的問題,但是如果n是個不確定的數呢?比如服務器每天會收到數以億計的請求,但是目前服務器端不希望保存所有的請求,只想隨機保存這些請求m個。試設計一種算法,能夠使服務器實時保存m個請求,並使這些請求是從所有請求的大致等概率被選中的結果。注意:不到一天的結束,是不能提前知道當天 ...

Sat Oct 12 04:36:00 CST 2013 0 7111
n個數中等概率取出m個數

思路:如果n個數本身是隨機的,那么直接輸出頭m個數即可;但事實上並不知道這n個數本身是不是隨機排列,所以可以用某種方法讓前面m個數變成隨機的,然后直接輸出前m個數。方法即是產生隨機數random,然后將a[random]與前面的a[i]交換,i為0、1、2……m。比如第一次,是將a[random ...

Fri May 08 01:23:00 CST 2020 0 768
N個不同球取出M個的組合個數求解

Technorati 標簽: 組合, 概率 從N個不同的球取出M個,一共有多少種取法? 這個問題是組合數據的基本問題,考慮拿出球是否放回,拿出去的球是否有序,它有4種變體: 不放回,有序; 不放回,無序; 放回,無序; 放回,有序; 對於第一種,取出M個球 ...

Mon Mar 21 00:14:00 CST 2016 0 4485
N個元素的集合隨機m個元素的算法實現

  最近有一個需求,比較簡單,就是如標題所說的,從N個元素隨機m個元素,當然這m個元素是不能存在重復的。本以為這么簡單的需求,應該有現成的工具類來實現,但是幾次查找居然沒找到(有知道的可以推薦下哈^_^)。只好自己實現了下。   自己的實現思路也不知道是不是有問題,或者還有沒有更好的思路 ...

Wed Oct 19 17:32:00 CST 2016 2 3122
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM