咋一看,这是个很简单的问题,但是如果n是个不确定的数呢?比如服务器每天会收到数以亿计的请求,但是目前服务器端不希望保存所有的请求,只想随机保存这些请求中的m个。试设计一种算法,能够使服务器实时保存m个请求,并使这些请求是从所有请求中的大致等概率被选中的结果。注意:不到一天的结束,是不能提前知道当天 ...
从 到m 这m个数中随机取出n个 n lt m 要求每个数被取到的可能性相等。第一个方法是把这m个数丢到一个List里面 然后用nextInt list.size 来产生随机数 然后把list里面对应的元素丢到另一个数组或者list里面 这个方法本来是不错的 但要注意的是 为了保证每个元素取到的概率相等 需要每取出一个元素 就把它从list里面删除 原因就不解释了 简单的概率问题。但众所周知的是 ...
2017-05-14 11:36 0 1901 推荐指数:
咋一看,这是个很简单的问题,但是如果n是个不确定的数呢?比如服务器每天会收到数以亿计的请求,但是目前服务器端不希望保存所有的请求,只想随机保存这些请求中的m个。试设计一种算法,能够使服务器实时保存m个请求,并使这些请求是从所有请求中的大致等概率被选中的结果。注意:不到一天的结束,是不能提前知道当天 ...
思路:如果n个数本身是随机的,那么直接输出头m个数即可;但事实上并不知道这n个数本身是不是随机排列,所以可以用某种方法让前面m个数变成随机的,然后直接输出前m个数。方法即是产生随机数random,然后将a[random]与前面的a[i]交换,i为0、1、2……m。比如第一次,是将a[random ...
Technorati 标签: 组合, 概率 从N个不同的球中取出M个,一共有多少种取法? 这个问题是组合数据的基本问题,考虑拿出球是否放回,拿出去的球是否有序,它有4种变体: 不放回,有序; 不放回,无序; 放回,无序; 放回,有序; 对于第一种,取出M个球 ...
转自作业帮https://www.zybang.com/question/a12eaf411fa8085fd93d4a3756fbee75.html 有很多算法,复杂度也不尽相同.以下简单举几个例子:1.n×m遍扫描【算法基本描述】n×m遍扫描【算法思想】每次都扫描一遍数组,取出最大 ...
前言 一位正在学习前端的菜鸟,虽菜,但还未放弃。 给大家画张图了解思路 以下是代码 ...
("美国"); list.add("德国"); //把随机取得的数据存储在 listRa ...
1.从数组items中随机取出一个元素 2.从前面的一篇随机数组中随机取几个元素 ...
最近有一个需求,比较简单,就是如标题所说的,从N个元素中随机取m个元素,当然这m个元素是不能存在重复的。本以为这么简单的需求,应该有现成的工具类来实现,但是几次查找居然没找到(有知道的可以推荐下哈^_^)。只好自己实现了下。 自己的实现思路也不知道是不是有问题,或者还有没有更好的思路 ...