怎么从m个数中随机选择n个数

 我来答
帐号已注销
2020-10-06 · TA获得超过77万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:161万
展开全部

组合数公式C(m,n) = m*(m-1) * (m-2) * ... *(m-n+1)/(1*2*3*...*n)

整数数组的前m个直接存下来。

用一个计数器保存当前正在处理的请求是第几个,比如n,对于从m+1开始的新请求,以m/n的概率选择保存,并同从已保存的m个请求中随机选出的一个进行交换。

比如这N个数为[4 2 6 8 10 3]要从中选m=4个数

a=[4 2 6 8 10 3];m=4;

b=a(randperm(length(a)));

b=b(1:m)

扩展资料:

c(n,m)=c(n-1,m-1)+c(n-1,m)

等式左边表示从n个元素中选取m个元素,而等式右边表示这一个过程的另一种实现方法:任意选择n中的某个备选元素为特殊元素,从n中选m个元素可以由此特殊元素的被包含与否分成两类情况,即m个被选择元素包含了特殊元素和m个被选择元素不包含该特殊元素。

前者相当于从n-1个元素中选出m-1个元素的组合,即c(n-1,m-1);后者相当于从n-1个元素中选出m个元素的组合,即c(n-1,m)。

参考资料来源:百度百科-组合数公式

tianjue1989
2017-02-01 · TA获得超过247个赞
知道小有建树答主
回答量:315
采纳率:100%
帮助的人:143万
展开全部
组合数公式C(m,n) = m*(m-1) * (m-2) * ... *(m-n+1)/(1*2*3*...*n)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式