规划管理部门的网站建设保定建网站需要多少钱
web/
2025/10/3 16:31:24/
文章来源:
规划管理部门的网站建设,保定建网站需要多少钱,网站优化建设安徽,河北君卓展览装饰有限公司2018-03-05 14:06:40 问题描述#xff1a;给出一个数据流#xff0c;这个数据流的长度很大或者未知。并且对该数据流中数据只能访问一次。请写出一个随机选择算法#xff0c;使得数据流中所有数据被选中的概率相等。 问题求解#xff1a;如果是长度已知或者有限的问题…2018-03-05 14:06:40 问题描述给出一个数据流这个数据流的长度很大或者未知。并且对该数据流中数据只能访问一次。请写出一个随机选择算法使得数据流中所有数据被选中的概率相等。 问题求解如果是长度已知或者有限的问题那么可以使用朴素的方法先遍历一遍得到的长度。然后在得到长度后可以使用随机算法得到一个随机的index。 但是本题已经明确指出数据流长度很大或者未知也就是说只能遍历一次而且要保证每个数被挑选的概率相等。 标准解法是使用Reservoir Sampling算法该算法由Knuth的学生在斯坦福读计算机博士时想出来。 算法描述 相关问题 382. Linked List Random Node 问题描述 问题求解 public class Solution {ListNode head;Random rand;/** param head The linked lists head.Note that the head is guaranteed to be not null, so it contains at least one node. */public Solution(ListNode head) {this.head head;this.rand new Random();}/** Returns a random nodes value. */public int getRandom() {int k 1;ListNode cur head;ListInteger reservoir new ArrayList();int i 0;while (i k cur ! null) {reservoir.add(cur.val);cur cur.next;i;}i;while (cur ! null) {if (rand.nextInt(i) k) {reservoir.set(rand.nextInt(k), cur.val);}i;cur cur.next;}return reservoir.get(0);}
}398. Random Pick Index问题描述 问题求解 如果仅存在一个数那么将之index返回如果存在多个数其index的返回值需要是等概率的也就是说对于k个相同的数我们需要每个index的返回概率为1/k。根据蓄水池算法我们首先要建立一个大小为1的池子然后对每个出现的target的index以当前出现个数的概率选择他然后从池中随机挑选一个数来与它交换由于池中仅有一个值因此只需要将res的值变为挑选值即可。 public class RandomPickIndex {int[] nums;Random ran;public RandomPickIndex(int[] nums) {this.nums nums;ran new Random();}public int pick(int target) {int res -1;int cnt 0;for (int i 0; i nums.length; i) {if (nums[i] ! target) continue;if (ran.nextInt(cnt) 0) res i;}return res;}
}转载于:https://www.cnblogs.com/TIMHY/p/8508759.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86311.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!