原文:从M个数中随机等可能的取出N个的问题

从 到m 这m个数中随机取出n个 n lt m 要求每个数被取到的可能性相等。第一个方法是把这m个数丢到一个List里面 然后用nextInt list.size 来产生随机数 然后把list里面对应的元素丢到另一个数组或者list里面 这个方法本来是不错的 但要注意的是 为了保证每个元素取到的概率相等 需要每取出一个元素 就把它从list里面删除 原因就不解释了 简单的概率问题。但众所周知的是 ...

2017-05-14 11:36 0 1901 推荐指数:

查看详情

n个数随机选取m

咋一看,这是个很简单的问题,但是如果n是个不确定的数呢?比如服务器每天会收到数以亿计的请求,但是目前服务器端不希望保存所有的请求,只想随机保存这些请求m个。试设计一种算法,能够使服务器实时保存m个请求,并使这些请求是从所有请求的大致等概率被选中的结果。注意:不到一天的结束,是不能提前知道当天 ...

Sat Oct 12 04:36:00 CST 2013 0 7111
n个数中等概率取出m个数

思路:如果n个数本身是随机的,那么直接输出头m个数即可;但事实上并不知道这n个数本身是不是随机排列,所以可以用某种方法让前面m个数变成随机的,然后直接输出前m个数。方法即是产生随机数random,然后将a[random]与前面的a[i]交换,i为0、1、2……m。比如第一次,是将a[random ...

Fri May 08 01:23:00 CST 2020 0 768
N个不同球取出M个的组合个数求解

Technorati 标签: 组合, 概率 从N个不同的球取出M个,一共有多少种取法? 这个问题是组合数据的基本问题,考虑拿出球是否放回,拿出去的球是否有序,它有4种变体: 不放回,有序; 不放回,无序; 放回,无序; 放回,有序; 对于第一种,取出M个球 ...

Mon Mar 21 00:14:00 CST 2016 0 4485
N个元素的集合随机m个元素的算法实现

  最近有一个需求,比较简单,就是如标题所说的,从N个元素随机m个元素,当然这m个元素是不能存在重复的。本以为这么简单的需求,应该有现成的工具类来实现,但是几次查找居然没找到(有知道的可以推荐下哈^_^)。只好自己实现了下。   自己的实现思路也不知道是不是有问题,或者还有没有更好的思路 ...

Wed Oct 19 17:32:00 CST 2016 2 3122
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM