原文:蓄水池抽樣及實現

蓄水池抽樣 Reservoir Sampling 是一個很有趣的問題,它能夠在o n 時間內對n個數據進行等概率隨機抽取,例如:從 個數據中等概率隨機抽取出 個。另外,如果數據集合的量特別大或者還在增長 相當於未知數據集合總量 ,該算法依然可以等概率抽樣。 說蓄水池抽樣之前,先說一下等概率隨機抽取問題,等概率隨機抽取是一個很有用的東西,因為在很多情況下,尤其是搞模式識別時,需要這個東西。比如,我們 ...

2012-11-27 13:21 0 16645 推薦指數:

查看詳情

蓄水池抽樣(原理&實現

前言:   蓄水池抽樣:從N個元素中隨機的等概率的抽取k個元素,其中N無法確定。 適用場景:   模式識別等概率抽樣抽樣查看漸增的log日志(無法先保存整個數據流然后再從中選取,而是期望有一種將數據流遍歷一遍就得到所選取的元素,並且保證得到的元素是隨機的算法)。 偽代碼 ...

Thu Feb 25 01:49:00 CST 2016 0 1634
蓄水池抽樣算法

問題定義 給你一個長度為N的鏈表。N很大,但你不知道N有多大。你的任務是從這N個元素中隨機取出k個元素。你只能遍歷這個鏈表一次。你的算法必須保證取出的元素恰好有k個,且它們是完全隨機的(出現概率均等)。 求解 蓄水池抽樣算法: 該算法是針對從一個序列中隨機抽取不重復的k個數,保證每個 ...

Wed Jun 18 00:22:00 CST 2014 1 2550
Reservoir Sampling 蓄水池抽樣算法,經典抽樣

隨機讀取數據,如何保證真隨機是不可能的,因為計算機的隨機函數是偽隨機的。 但是在不考慮計算機隨機函數的情況下,如何保證數據的隨機采樣呢? 1.系統提供的shuffle函數   C++/Java都 ...

Wed Oct 29 01:05:00 CST 2014 1 7459
蓄水池算法的設計和實現

作者: Grey 原文地址:蓄水池算法的設計和實現 要解決的問題 假設有一個源源吐出不同球的機器, 只有裝下10個球的袋子,每一個吐出的球,要么放入袋子,要么永遠扔掉,如何做到機器吐出每一個球之后,所有吐出的球都等概率被放進袋子里 規則 吐出1到10號球,完全入袋, 引入隨機 ...

Sun Sep 19 20:27:00 CST 2021 0 202
【算法34】蓄水池抽樣算法 (Reservoir Sampling Algorithm)

蓄水池抽樣算法簡介 蓄水池抽樣算法隨機算法的一種,用來從 N 個樣本中隨機選擇 K 個樣本,其中 N 非常大(以至於 N 個樣本不能同時放入內存)或者 N 是一個未知數。其時間復雜度為 O(N),包含下列步驟 (假設有一維數組 S, 長度未知,需要從中隨機選擇 k 個元素, 數組下標 ...

Wed Jul 15 06:50:00 CST 2015 0 8377
【大數據算法】蓄水池抽樣算法

一、題目來源: 這個題目的由來是周圍有人討論到去面試(某8)的時候遇到了這個問題。另外正好HIT有個視頻也有這個內容,故記錄一下: 二、題目描述: 該人面 ...

Sat Nov 22 00:40:00 CST 2014 3 4717
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM