由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 前段时间整理的随机算法
相关主题
从N个元素中随机抽取K个元素的方法?请教个算法题
请教一道题目求解lintcode Majority Number III
新鲜G面筋(2)[包子求助] Graph matching problem
G家onsite 随机数一题问道题
请教一道经典的面试真题说说我的google电面
一道大数组shuffle的题Maximum Sum of Increasing Sequence
这个题没怎么看大家讲过这是什么数据结构?
讨论一道面试题求救: 打印binary tree
相关话题的讨论汇总
话题: 元素话题: int话题: 随机话题: num话题: 抽取
进入JobHunting版参与讨论
1 (共1页)
a****n
发帖数: 1887
1
面试考得随机算法
from我的blog, http://www.cnblogs.com/asuran/
1. 要求从N个元素中随机的抽取1个元素。
2. 要求从N个元素中随机的抽取K个元素。
int remain = N
int select = K
for (int i = 0; i < N; ++i){
if (rand()% remain < select){
cout< --select;
}
--remain;
}
第一个元素被选中的概率为 K/N
第二个元素被选中的概率为(K/N)*((K-1)/(N-1)) + ((N-K)/N) * (K/(N-1)) = K/N
.........
证明略(参看The Art of Computer Programming III)
3. 要求从N个元素中随机的抽取1个元素, 其中N无法确定(数据流)。
int Num;
int i = 0;
int choose = 0;
while(scanf("%d", &Num)&& Num != 0){
if (((double
g*******y
发帖数: 1930
2
不错~赞一个~
w********p
发帖数: 948
3
收藏。谢谢
k***e
发帖数: 556
4
首先,感谢你的share,敬佩你码了这么多字
以下我只是列出一点事实,并不是想打击你的积极性。
1。programming pearl chap12基本包含了你写的内容。
2。那个证明完全不用refer到knuth的书,用归纳法就可以了。
3。在线n choose one can be extended to n choose k for general k

【在 a****n 的大作中提到】
: 面试考得随机算法
: from我的blog, http://www.cnblogs.com/asuran/
: 1. 要求从N个元素中随机的抽取1个元素。
: 2. 要求从N个元素中随机的抽取K个元素。
: int remain = N
: int select = K
: for (int i = 0; i < N; ++i){
: if (rand()% remain < select){
: cout<: --select;

a********a
发帖数: 219
5
这些题实在太难了。。。。

【在 a****n 的大作中提到】
: 面试考得随机算法
: from我的blog, http://www.cnblogs.com/asuran/
: 1. 要求从N个元素中随机的抽取1个元素。
: 2. 要求从N个元素中随机的抽取K个元素。
: int remain = N
: int select = K
: for (int i = 0; i < N; ++i){
: if (rand()% remain < select){
: cout<: --select;

a****l
发帖数: 245
6
赞分享~~
m*****f
发帖数: 1243
7
面试要考随机就考这些阿
知道了还难么..

【在 a********a 的大作中提到】
: 这些题实在太难了。。。。
r**u
发帖数: 1567
8
很不错,谢谢。

【在 a****n 的大作中提到】
: 面试考得随机算法
: from我的blog, http://www.cnblogs.com/asuran/
: 1. 要求从N个元素中随机的抽取1个元素。
: 2. 要求从N个元素中随机的抽取K个元素。
: int remain = N
: int select = K
: for (int i = 0; i < N; ++i){
: if (rand()% remain < select){
: cout<: --select;

Z*****Z
发帖数: 723
9
补充一个变体
Write a function that given a list of items and weights return a random item
in the list taking the weights into account.

【在 a****n 的大作中提到】
: 面试考得随机算法
: from我的blog, http://www.cnblogs.com/asuran/
: 1. 要求从N个元素中随机的抽取1个元素。
: 2. 要求从N个元素中随机的抽取K个元素。
: int remain = N
: int select = K
: for (int i = 0; i < N; ++i){
: if (rand()% remain < select){
: cout<: --select;

1 (共1页)
进入JobHunting版参与讨论
相关主题
求救: 打印binary tree请教一道经典的面试真题
问个题一道大数组shuffle的题
Google 电话面试被拒这个题没怎么看大家讲过
Amazon的Fibonacci题讨论一道面试题
从N个元素中随机抽取K个元素的方法?请教个算法题
请教一道题目求解lintcode Majority Number III
新鲜G面筋(2)[包子求助] Graph matching problem
G家onsite 随机数一题问道题
相关话题的讨论汇总
话题: 元素话题: int话题: 随机话题: num话题: 抽取