一亩三分地论坛

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

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

回报地里,攒人品,发一道空气床的新题

[复制链接] |试试Instant~ |关注本帖
dimengmale 发表于 2016-4-29 05:13:49 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类 硕士 全职@Airbnb - 网上海投 - 技术电面 |Other在职跳槽

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

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

x
这道题我似乎没有在地里看到过,也可能miss掉了,发出来供大家参考
猜数字
猜一个4位的数字,每位上数字从1到6.
提供一个API,输入一个你猜的数字,返回有几位是猜对的
比如要猜的数字是1234,猜的数字是1111,则返回1
猜的数字是1212,则返回2 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
要求写个程序多次调用这个API以后,返回猜的数字结果是什么

评分

1

查看全部评分

本帖被以下淘专辑推荐:

mcnianliu 发表于 2016-5-14 03:40:42 | 显示全部楼层
1111,2222,3333,4444,5555
5次找出4个数字 6666不用找,因为 guess(6666) = 4 - ( guess(1111)+...+guess(5555) )

然后试
a1a1a1a1, a1a2a2a2, a1a3a3a3 同理a1a4a4a4不用试
目的是找出后三个数的数字组合 (不是排列)
找出后3个数字 就确定了第一个数字,而且这一轮a1a1a1a1不用调api,第一轮里有
第二轮2次: 固定第一个数字,找到后3个数字组合

同理第三轮1次:固定第二个数字,找到后2个数字组合

sorry 第四轮还有1次,后两个数字的排列测一个 剩下的就是
不过思考一下这一轮可能不需要
.1point3acres缃
更正一下:目前能想到最好5+2+1+1 = 9次. From 1point 3acres bbs
好像1周前想的确实最后一轮不用 不太记得了, 应该是结合前面的结果

sorry应该还是8次 有纸画画再来补充
回复 支持 2 反对 0

使用道具 举报

Fustang 发表于 2016-4-29 05:45:21 | 显示全部楼层
有什么好的策略?随便想了一个. 鍥磋鎴戜滑@1point 3 acres
测1111,2222,3333 ... 6666六次得到每个digit的count
然后permutation,一共24个组合.
一共最多call30次
回复 支持 反对

使用道具 举报

blood8088 发表于 2016-4-29 09:06:26 | 显示全部楼层
我想了一下,好像最坏需要调用16次?

一开始随机,分为两种情况,一是有至少一个中,另一个是全不中,全不中就继续随机(不放回的抽取)。

试想,如果一直全不中,那6次就能完事. Waral 鍗氬鏈夋洿澶氭枃绔,

如果中了至少一个,那就逐位用排除法来查找哪几位中了,最多需要call 4次。然后固定中了的位,继续查找其他位,最坏的调用次数依次递减 3,2,1。

. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴但是每确定一位,其他位对应的可选的数字的数量就会减少 1。所以最坏的情况也就是6 + 4 + 3 + 2 + 1 = 16。
回复 支持 反对

使用道具 举报

mcnianliu 发表于 2016-5-13 23:09:52 | 显示全部楼层
目前能想到最好的算法: 5+2+1 = 8次
回复 支持 反对

使用道具 举报

lll_2013 发表于 2016-5-14 00:41:36 | 显示全部楼层
mcnianliu 发表于 2016-5-13 10:09
.1point3acres缃目前能想到最好的算法: 5+2+1 = 8次

8次怎么想出来的?5次之后也就能确定a1,a2,a3,a4,对吧之后猜测也就是a1a1a2a2,之后需要判断4次才能获得啊。能不能把你思路说一下哈,谢谢啦
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-6 01:27

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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