GoCalf Blog 1/100 Algo&Math; 1/100 IT&Game; 1/100 Info&Sharing; 1/100 Personal&Other.

26九/1111

单次遍历,带权随机选取问题(二)

作者: Calf

colorpicker_weight_2
Part 6 of 15 in the series 常见面试算法题

还是同样的问题:有一组数量未知的数据,每个元素有非负权重。要求只遍历一次,随机选取其中的一个元素,任何一个元素被选到的概率与其权重成正比。

前一篇文章中介绍了概率分布的理论值,并用比较简洁高效的函数实现了选取一个元素的方法。现在来看一个神奇的算法,以及相关的证明和实现。

21九/110

单次遍历,带权随机选取问题(一)

作者: Calf

colorpicker_weight
Part 5 of 15 in the series 常见面试算法题

单次遍历,等概率随机选取问题中已经剧透了今天的内容,那就是带权随机选取(Weighted Random Sample)问题。

问题描述:有一组数量未知的数据,每个元素有非负权重。要求只遍历一次,随机选取其中的一个元素,任何一个元素被选到的概率与其权重成正比。

6九/115

单次遍历,等概率随机选取问题

作者: Calf

colorpicker
Part 4 of 15 in the series 常见面试算法题

又是一道概率问题,不过跟之前的题目一样,这也是一道非常简单的题目。

问题描述:假设我们有一堆数据(可能在一个链表里,也可能在文件里),数量未知。要求只遍历一次这些数据,随机选取其中的一个元素,任何一个元素被选到的概率相等。O(n)时间,O(1)辅助空间(n是数据总数,但事先不知道)。