攒人品!google和百度电话面试题

rayeaster 2010-12-21 03:19:57
google:(题目比较长)
面对一个连续无尽的数据(假设都是整数)输入流,只给你一个容量固定(比如只能放10个整数)的数组(bucket), 如何得到一个能比较正确反映该数据流中出现最多的那些数字的统计:
举例如下:
输入:1, 1, 2, 7, 4, 5, 6, 3, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15.....(目前共有20个数字)
输出:[1, 1, 1, 1, 1, 1, 1, 1, 2, 7], bucket容量假设为10
(共出现了12个1, 所以12/20 = 0.8,bucket里有8个1, 剩下两个因为例子里面其它数字出现地一样多,所以随便选)

百度:
1. 一个概率发生器只能以概率p产生1,概率1-p产生0,要求一个概率发生器,能够等概率生成0和1

2. 上坡速度为V/2, 下坡速度为多少才能让平均速度达到V? 要求最通俗的解释。

3. 并发多线程抓取网页的时候,大量的crawler如何保证不会让某个目标网站down掉?

4.http://topic.csdn.net/u/20101022/17/78ac5028-d38a-41de-b5f8-38a40923c6a0.html
...全文
1791 43 打赏 收藏 转发到动态 举报
写回复
用AI写文章
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
oioioioidfgbdui 2011-08-24
  • 打赏
  • 举报
回复
楼主啊 仔细看题啊 哥差点以为你是天才了
[Quote=引用 41 楼 buleriver 的回复:]

百度第二题可以直接使用方程解决:假设下坡速度为w,坡长为s,那么总时间为:
t = s / V + s / w;
平均速度:
vv = 2 * s / t = 0.5 * V;
可以轻易的计算出来: w = V / 3
[/Quote]
BuleRiver 2011-03-03
  • 打赏
  • 举报
回复
[Quote=引用 40 楼 buleriver 的回复:]
百度的第一题:
假设p > 0.5,当产生0时,直接输出0,当产生1时,因为概率大于0.5,所以按照一定的概率x,把1换成0输出,计算x的方法如下:
(1-x)*p = 0.5 --> x = 1 - 0.5/p
[/Quote]
不好意思,想错了。
BuleRiver 2011-03-03
  • 打赏
  • 举报
回复
百度第二题可以直接使用方程解决:假设下坡速度为w,坡长为s,那么总时间为:
t = s / V + s / w;
平均速度:
vv = 2 * s / t = 0.5 * V;
可以轻易的计算出来: w = V / 3
BuleRiver 2011-03-03
  • 打赏
  • 举报
回复
百度的第一题:
假设p > 0.5,当产生0时,直接输出0,当产生1时,因为概率大于0.5,所以按照一定的概率x,把1换成0输出,计算x的方法如下:
(1-x)*p = 0.5 --> x = 1 - 0.5/p
aliezeng77 2011-03-02
  • 打赏
  • 举报
回复
1. 一个概率发生器只能以概率p产生1,概率1-p产生0,要求一个概率发生器,能够等概率生成0和1

int MyRandom()
{
int x1=0, x2=0, sum=1;

while(1==sum)
{
x1=GivenRandom(); //GivenRandom()为题给概率发生器
x2=1-GivenRandom();
sum=x1+x2;
}
return sum/2;
}
bacmoz 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 viskag 的回复:]

貌似这个很精妙
引用 9 楼 somethingwrong 的回复:
baidu1.
执行原来的随机数发生器
每隔一个把结果反转一次,也就是1变0,0变1
[/Quote]
结果不是随机分布,即不是每次0,1的概率都是0.5
bacmoz 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 vieri122 的回复:]

引用 25 楼 wsncz 的回复:

1. 一个概率发生器只能以概率p产生1,概率1-p产生0,要求一个概率发生器,能够等概率生成0和1
随机生成数(max以内),小于 max * p 返回1,大于 返回0


这个貌似是对的
[/Quote]
哪里来的随机数生成器?只有一个概率发生器,生成1和0,以概率p
vieri122 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 wsncz 的回复:]

1. 一个概率发生器只能以概率p产生1,概率1-p产生0,要求一个概率发生器,能够等概率生成0和1
随机生成数(max以内),小于 max * p 返回1,大于 返回0
[/Quote]

这个貌似是对的
whycadi 2011-02-09
  • 打赏
  • 举报
回复
google题,如果有N个数字,选C个出来,那么每个数字的最终概率应该是 C/N
当到第Ni+1个数时,应该以C/(Ni+1)的概率决定是否保留此数,而现有已选出的数的概率是 C/Ni,需要变为 C/(Ni+1),那么应该以 Ni/(Ni+1)的概率决定是否保留此数,即1/(Ni+1)的概率是否删除此数,又
1/(Ni+1)= (1/C) *(C/(Ni+1)),也就是说先以C/(Ni+1)的概率决定是否留下最新的数,如果是,则从已有的C个数中等概率(即1/C概率)选择一个数删除。这样就可以得到等概率的C个数
lq98710 2011-02-09
  • 打赏
  • 举报
回复
不是很懂,学习是主要
iLove9ouHenry 2011-02-09
  • 打赏
  • 举报
回复
上坡速度为v/2,下坡速度就是 (1+1/2)v,道理很简单。除了达到自己v的目标,还需要弥补先前的不足(增加1/2v)
zhengjiankang 2011-02-09
  • 打赏
  • 举报
回复
Google的那个题。俺还不会哎。。看来要努力学习了。
Viskag 2011-02-09
  • 打赏
  • 举报
回复
貌似这个很精妙
[Quote=引用 9 楼 somethingwrong 的回复:]
baidu1.
执行原来的随机数发生器
每隔一个把结果反转一次,也就是1变0,0变1
[/Quote]
bacmoz 2011-02-03
  • 打赏
  • 举报
回复
1. 以概率p连续生成两个数字x1, x2,
如果x1x2 == 01,则输出0,如果x1x2 == 10,则输出1
如果x1 == x2, 则继续以概率p生成x3,对x2x3进行上面的判断,。。。

总有结束的时候,如果无线循环,则必定p==0或者p==1
dragonxie1983 2011-02-01
  • 打赏
  • 举报
回复
1. 一个概率发生器只能以概率p产生1,概率1-p产生0,要求一个概率发生器,能够等概率生成0和1

产生 1/p 个1的时候 输出 1, 1/(1-p)个0的时候输出0
wsncz 2011-01-30
  • 打赏
  • 举报
回复
1. 一个概率发生器只能以概率p产生1,概率1-p产生0,要求一个概率发生器,能够等概率生成0和1
随机生成数(max以内),小于 max * p 返回1,大于 返回0
wsncz 2011-01-30
  • 打赏
  • 举报
回复
2. 上坡速度为V/2, 下坡速度为多少才能让平均速度达到V? 要求最通俗的解释。

在时间静止的时候可以达到
do__i 2010-12-25
  • 打赏
  • 举报
回复
百度
2:上坡速度为v1,时间为t1;
下坡速度为v2,时间为t2;
上坡的位移为s,下坡的位移为-s.
所以:
v1=v/2
t1=s/v1=2s/v;

t2=(-s)/v2;

平均速度=总路程/总时间
所以:
v=2s/(t1+t2)
化简后:2s-vs/v2=2s
vs/v2=0
即v2趋近于无穷大,理论上是这样!
arkor 2010-12-25
  • 打赏
  • 举报
回复
学习了,以后用得上
幽魂 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 ycl1314 的回复:]

引用 6 楼 fire_woods 的回复:
baidu 2:
下坡速度要无限大, 平均速度才能是v.
比如做一件事情, 一天要完成, 结果事情的前面半部分做的慢, 效率只有预期的一半, 也就是说花一天时间做好了上半部分, 那么下半部分就只能瞬间完成了, 所以做下班数码的效率是无限快, 对应到速度就是无限大.

正解。
[/Quote]的确是正解,还可以这样说 s/(v/2)=t1 2s/v=t2 t1-t2=0...就没时间了,只能光速了
加载更多回复(16)

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧