有趣的题目
TheAlgorithmArt
这个作者很懒,什么都没留下…
展开
-
等概率随机排列数组(洗牌算法)
又是一道跟概率相关的简单问题。话说我的概率学的太差了,趁这个机会也从头开始补习一下。问题描述:假设有一个数组,包含n个元素。现在要重新排列这些元素,要求每个元素被放到任何一个位置的概率都相等(即1/n),并且直接在数组上重排(in place),不要生成新的数组。用 O(转载 2011-09-25 16:39:13 · 2410 阅读 · 0 评论 -
单次遍历,等概率随机选取问题
又是一道概率问题,不过跟之前的题目一样,这也是一道非常简单的题目。问题描述:假设我们有一堆数据(可能在一个链表里,也可能在文件里),数量未知。要求只遍历一次这些数据,随机选取其中的一个元素,任何一个元素被选到的概率相等。O(n)时间,O(1)辅助空间(n是数据总数,但事先转载 2011-09-25 16:00:43 · 1257 阅读 · 0 评论 -
单次遍历,带权随机选取问题(一)
在单次遍历,等概率随机选取问题中已经剧透了今天的内容,那就是带权随机选取(Weighted Random Sample)问题。问题描述:有一组数量未知的数据,每个元素有非负权重。要求只遍历一次,随机选取其中的一个元素,任何一个元素被选到的概率与其权重成正比。设转载 2011-09-25 16:17:40 · 1092 阅读 · 0 评论 -
利用等概率Rand5产生等概率Rand3
问题本身很明确,但不知道起个什么题目好,姑且先这么说吧。问题描述:现在有一个叫做Rand5的函数,可以生成等概率的[0, 5)范围内的随机整数,要求利用此函数写一个Rand3函数(除此之外,不能再使用任何能产生随机数的函数或数据源),生成等概率的[0, 3)范围内的随机整转载 2011-09-25 15:55:34 · 3088 阅读 · 0 评论