专栏名称: Python爱好者社区
人生苦短,我用Python。分享Python相关的技术文章、工具资源、精选课程、视频教程、热点资讯、学习资料等。每天自动更新和推送。
目录
今天看啥  ›  专栏  ›  Python爱好者社区

如何进行随机抽样?

Python爱好者社区  · 公众号  · Python  · 2017-08-26 17:06
    

文章预览

作者:曹金龙 个人公众号:Python那些事 有这样一个问题: 随机的选取容量为N的数组中的k个元素,要求是不能重复选取,并且不能删除数组中的元素,只能够进行交换。其中 k≤N 。 看到这个题目,你想到了什么? 我先想到的就是抽签算法。当由 k 个人抽 K 张签,无论先后顺序,每个人抽中的概率都是1/K 。同理,  k 个人抽 N 张签,无论先后顺序, 每个人抽中的概率都是1/N 。 可以简单说明一下: 1、当k=1时,由于是从 N 张签中抽取,所以 抽中的概率是1/N, 成立。 2、 当k=2时, 在剩下的 N-1 个中随机选:1/(N-1),由于第1次没有选中它, 而是在另外N-1个中选:(N-1)/N,因此概率为:(N-1)/N * 1/(N-1) = 1/N。 3、当k=3时,概率为 ( N -1)/ N  * ( N -2)/( N -1) * 1/( N- 2) = 1/ N。 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览