算法导论5.3-7集合的随机样本
来源:互联网 发布:七爷交友平台知乎 编辑:程序博客网 时间:2024/06/08 08:13
问题:
假设我们希望创建集合{1,2,3,…,n}的一个随机样本,即一个具有m个元素的集合S,其中0<=m<=n,使得每个m集合能够等可能的创建。
解决方法:
第一种:
对i=1,2,…,n设A[i]=i,调用RANDOMIZE-IN-PLACE(A),然后取最前面的m个数组元素,RANDOMIZE-IN-PLACE在前一篇博客随机排列数组中有具体说明。该种方法会对RANDOM调用n次。
第二种:
如下伪代码描述的递归过程RANDOM-SAMPLE,该过程返回集合的随机m子集S,其中每个m子集是等可能的,然而只对RANDOM调用m次。
RANDOM-SAMPLE(m,n)if m == 0 return empty set Selse S = RANDOM-SAMPLE(m - 1, n - 1) i = RANDOM(1, n) if i was in set S add n to set S else add i to set S return S
下面论证该算法的正确性,可以模仿随机排列数组中证明过程RANDOMIZE-IN-PLACE所使用到的归纳法。
假设m-1次递归返回的(m-1)集合共
得到S中不包含n的m集合的概率为:
又由第一次递归返回的为空集,1种且概率为1,易知,该算法可得正确结果,即可生成
阅读全文
0 0
- 算法导论5.3-7集合的随机样本
- 算法导论第五章5.3随机算法
- 算法导论学习笔记-5.3 随机算法
- 算法导论之随机算法
- 算法导论里关于随机算法的两道题
- RANSC算法(随机样本一致性)
- RANSC算法(随机样本一致性)
- 随机排列算法及《算法导论》5.3节习题解答
- 算法导论之随机选择
- 随机算法 实现估算集合的势
- 算法导论概率分析和随机算法
- 算法导论 第五章:随机算法
- 算法导论-14.3-7-O(nlgn)时间求矩形集合中重叠矩形的个数
- 算法导论-14.3-7-O(nlgn)时间求矩形集合中重叠矩形的个数
- 算法导论21(用于不相交集合的数据结构)
- 算法导论笔记:21用于不相交集合的数据结构
- 算法导论 第二十一章:不相交集合的数据结构
- 算法导论之用于不相交集合的数据结构
- 浅谈标准I/O缓冲区
- css居中补充
- builder设计模式学习笔记
- ios 简单的本地json格式文件解析
- sqlserver表结构(含约束)复制存储过程
- 算法导论5.3-7集合的随机样本
- Dnf史诗装备的爆率的程序模拟
- 安装psql遇到的连接问题 Could not symlink include/ecpg_config.h
- 人工智能:正在崛起的全新生产要素
- OkHttp3.0的基本使用
- 媲美IDM下载器 FlareGet v4.5.102 特别版
- LineageOS 14.1 (Android 7.1.2) for Raspberry Pi 3
- Docker Swarm mode 微服务部署及调用
- 探究斐波那契数列的通项公式