/**
* definition for singly-linked list.
* struct listnode
* };
*//*
水塘抽樣:維護乙個大小為1的水塘,由於確定head一定存在,定義res返回head->val的值,然後讓head指向下乙個節點,同時定義乙個變數i,i初始化為2,當cur不為空的時候,迴圈在[0,i-1]中取值,變數i自增1,cur指向下乙個位置,如果隨機生成數為0的話,交換水塘的值和當前遍歷的值。這樣保證每個數字的概率。
*/class
solution
/** returns a random node's value. */
int getrandom()
return res;
}private:
listnode *head;
};/**
* your solution object will be instantiated and called as such:
* solution obj = new solution(head);
* int param_1 = obj.getrandom();
*/
Reservoir sampling(水塘抽樣)
題目1 給出乙個資料流,這個資料流的長度很大或者未知。並且對該資料流中資料只能訪問一次。請寫出乙個隨機選擇演算法,使得資料流中所有資料被選中的概率相等。對於複雜問題一定要學會歸納總結,即從小例子入手,然後分析,得出結論,然後在證明。不然遇到乙個抽象問題,不舉例感覺這個問題,直接解還是比較難的。對於此...
隨機抽數的概率誤區與洗牌演算法
在重新做 複雜 一書中第九章提到的遺傳演算法例子的時候遇到了乙個問題,遺傳演算法驅動的機械人羅比需要在不斷的進化過程中產生出可以清理10x10方格內隨機位置垃圾的最優策略。10x10方格內的垃圾是隨機放置的,假設需要隨機放置50個垃圾的話,並視10x10網格為長度為100的線性空間,這就需要偽隨機數...
python隨機抽號 python寫隨機抽取元素
python寫隨機抽取元素 首先要匯入乙個python的隨機包 匯入乙個時間函式,對某項輸出內容進行延遲 定義乙個列表,輸入想要隨機的元素 定義乙個隨機抽取的數量 import random 匯入乙個python的隨機包 import time list1 邵廣超 嘉怡 王學文 柴子健 李冰 張偉 ...