一亩三分地论坛

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

一亩三分地官方iOS手机应用下载
查看: 2360|回复: 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...

开始完全把它当做数学题做了...虽然最后做出来了, 感觉只做了一道这个这种题估计离挂不远了lol

评分

2

查看全部评分

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

使用道具 举报

 楼主| Guardians 发表于 2015-5-7 11:37:20 | 显示全部楼层
关注一亩三分地微博:
Warald
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().鏈枃鍘熷垱鑷1point3acres璁哄潧
if(n < 21) {
  return n % 7
}
应该是这样子的吧
回复 支持 反对

使用道具 举报

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 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
嗯, 差不太多这个意思, 之前当数学题在做了~
没有收到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. from: 1point3acres.com/bbs
你这个错的太远了。 第一个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:.鏈枃鍘熷垱鑷1point3acres璁哄潧
  2.     x = (Rand5() - 1) * 5 + (Rand5() - 1)
  3.     if x < 21: return x/3 + 1
复制代码
回复 支持 反对

使用道具 举报

dliao 发表于 2016-1-28 13:35:45 | 显示全部楼层
from stackoverflow:

do-google 1point3acres
{
  i = 5 * (rand5() - 1) + rand5();  // i is now uniformly random between 1 and 25
} 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, 2017-4-26 08:52

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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