C++高效率在m个单位中随机取n个单位的算法

C++高效率在m个元素中随机取n个元素的算法

一、简述

在编程中,尤其是编写游戏的过程中经常会遇到在m个东西中取出n个东西的需求,这个时候一般人都会想到随机n个数出来,然后在原来的列表中去凑这n个数的下标。这样会导致许多的问题,例如很难保证不出现重复的随机数,更重要的是我们会为了避免这些问题去做许多没有意义的循环从而严重的影响了效率,这个时候就需要一个更加有效率的算法。

二、基本原理

如果我们总共有的个数为m,而我们需要随机取出的个数为n。
那么我们每一个元素被取出的概率为: n m \frac{n}{m} mn
如果我们已经取出了一个元素,那么下一个元素被取出的概率为: n − 1

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值