如何等概率地从n个数中随机抽出m个数

 我来答
与草科帆刻721
2017-08-21 · 超过36用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:44万
展开全部
整数数组的前m个直接存下来。

用一个计数器保存当前正在处理的请求是第几个,比如n

对于从m+1开始的新请求,以m/n的概率选择保存,并同从已保存的m个请求中随机选出的一个进行交换。

细说就是,

对于第m+1个请求,以m/(m+1)的概率选择留下,如果留下了则从已保存的m个请求中随机选出一个,同它交换;

对于第m+2个请求,以m/(m+2)的概率选择留下,如果留下了则从已保存的m个请求中随机选出一个,同它交换;

对于第m+3个请求,以m/(m+3)的概率选择留下,如果留下了则从已保存的m个请求中随机选出一个,同它交换;


对于第n个请求,以m/n的概率选择留下,如果留下了则从已保存的m个请求中随机选出一个,同它交换
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式