一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1311|回复: 11
收起左侧

Bloomberg电面, 4/23

[复制链接] |试试Instant~ |关注本帖
Guardians 发表于 2015-4-24 02:55:01 | 显示全部楼层 |阅读模式

2015(4-6月) 码农类 本科 全职@Bloomberg - 网上海投 - 技术电面 |Otherfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
估计自己挂了, 一个白人小哥打来的, 全程完全没有问任何coding, hackerrank都没打开
一开始就介绍自己project, 为什麽bb聊了20分钟。
来了一个问题,
现在有一个random generator可以generate 范围是1-5的integer
问怎麽generate出1-7的integer, 要求要equal possibility...
. visit 1point3acres.com for more.
开始完全把它当做数学题做了...虽然最后做出来了, 感觉只做了一道这个这种题估计离挂不远了lol. from: 1point3acres.com/bbs

评分

2

查看全部评分

gl891011 发表于 2015-5-7 09:51:23 | 显示全部楼层
敢问楼主是怎么做的啊?电面结果如何啊?我明天电面,好紧张,估计可能一轮游了。。。
回复 支持 反对

使用道具 举报

 楼主| Guardians 发表于 2015-5-7 11:37:20 | 显示全部楼层
gl891011 发表于 2015-5-7 09:51
敢问楼主是怎么做的啊?电面结果如何啊?我明天电面,好紧张,估计可能一轮游了。。。

结果当然是挂了啊~给了hackerrank连接用都没用能不挂麽lol
做法可以换个方式想想, 比如如果可以generate 1 - 10怎么generate 1-7
简单来说就是generate出7以上的话就discard掉, 再recursive call一次, 这样就保证1-7的范围, 并且概率都相同
想办法把5的值变到7以上就好了~
回复 支持 反对

使用道具 举报

JamesJi 发表于 2015-12-12 04:27:39 | 显示全部楼层
n = 5 * rand5() + rand5()
if(n < 21) {
  return n % 7
}-google 1point3acres
应该是这样子的吧
回复 支持 反对

使用道具 举报

JamesJi 发表于 2015-12-12 04:28:29 | 显示全部楼层
楼主后来有收到onsite吗
回复 支持 反对

使用道具 举报

 楼主| Guardians 发表于 2015-12-12 07:06:50 | 显示全部楼层
JamesJi 发表于 2015-12-12 04:27
n = 5 * rand5() + rand5()
if(n < 21) {
  return n % 7

嗯, 差不太多这个意思, 之前当数学题在做了~
没有收到onsite, 做太久了lolol
回复 支持 反对

使用道具 举报

JamesJi 发表于 2015-12-13 03:52:21 | 显示全部楼层
Guardians 发表于 2015-12-11 18:06
嗯, 差不太多这个意思, 之前当数学题在做了~. from: 1point3acres.com/bbs
没有收到onsite, 做太久了lolol

噢噢噢好的,谢谢楼主
回复 支持 反对

使用道具 举报

yueyub 发表于 2015-12-13 10:03:45 | 显示全部楼层
JamesJi 发表于 2015-12-12 04:27
n = 5 * rand5() + rand5()
if(n < 21) {
  return n % 7

你这个错的太远了。 第一个rand5()可给出1,第二个rand5()可给出2,  n=7, 7%7 =0?要给出1到7,你连0都给出来了? 这还是细节,实际上所有和你类似方法的都是错误的。
回复 支持 反对

使用道具 举报

leonidas1573 发表于 2015-12-13 10:13:12 | 显示全部楼层
yueyub 发表于 2015-12-13 10:03
你这个错的太远了。 第一个rand5()可给出1,第二个rand5()可给出2,  n=7, 7%7 =0?要给出1到7,你连0都给 ...

不觉得有什么问题. 细节可以看http://stackoverflow.com/a/842183. idea就是generate出2位数的5进制数4*5+4. 然后用if(n<21)删掉那些该填0的, 该填0的导致分部不均匀. 然后随机选就ok了. 给1到7算出0怎么了.不能+1么.
回复 支持 反对

使用道具 举报

JamesJi 发表于 2015-12-13 10:31:18 | 显示全部楼层
yueyub 发表于 2015-12-12 21:03
你这个错的太远了。 第一个rand5()可给出1,第二个rand5()可给出2,  n=7, 7%7 =0?要给出1到7,你连0都给 ...
.鐣欏璁哄潧-涓浜-涓夊垎鍦
那你觉得应该怎么做呢
回复 支持 反对

使用道具 举报

trouble246 发表于 2016-1-27 02:01:01 | 显示全部楼层
JamesJi 发表于 2015-12-13 10:31
那你觉得应该怎么做呢

思路就是rejection sampling 但你的判定和return有问题,我觉得应该是
  1. if(n<19) return n%7+1;
复制代码
才保证equal possibility
或者可以
  1. while True:
  2.     x = (Rand5() - 1) * 5 + (Rand5() - 1). 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  3.     if x < 21: return x/3 + 1
复制代码
回复 支持 反对

使用道具 举报

dliao 发表于 2016-1-28 13:35:45 | 显示全部楼层
from stackoverflow:
.鏈枃鍘熷垱鑷1point3acres璁哄潧
do
{
  i = 5 * (rand5() - 1) + rand5();  // i is now uniformly random between 1 and 25.鏈枃鍘熷垱鑷1point3acres璁哄潧
} while(i > 21);
.鐣欏璁哄潧-涓浜-涓夊垎鍦// i is now uniformly random between 1 and 21. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
return i % 7 + 1;  // result is now uniformly random between 1 and 7. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-7 17:33

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表