锁定老帖子 主题:EMC面试题
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-10-02
1.有两堆东西,一堆4个,一堆7个,两个人开始拿东西,一次可以拿任意个,但只能从一堆中拿。现规定:如果最后剩下一个,而且轮到谁拿谁就输了。现在你先拿,请问有致胜方法吗?
2.手机上每个数字对应几个字母,给你一串数字,请你输出所有可能的字符串。要求是最好的算法。好像这个《编程之美》上面有的。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-10-10
第一题是不是第一次拿要保证拿的那一堆剩2个就行了?就是4个的拿2个或者7个的拿5个
|
|
返回顶楼 | |
发表时间:2011-10-10
关于第2题,我看了下我的E63...还是全尺寸键盘好啊
|
|
返回顶楼 | |
发表时间:2011-10-10
第一题关键在于谁导致其中1堆只剩1个谁就输,因此临界点就是谁导致两堆都为2个的为赢家,拿掉第2堆的3个使得两堆数量相等,接下来只要在没有出现1个的情况下使两堆相等就行了,某一堆出现1个,就拿光另一堆
|
|
返回顶楼 | |
发表时间:2011-10-10
第二题就是求1对n的所有集合
|
|
返回顶楼 | |
发表时间:2011-10-10
第一题是动态博弈啊.我记得是前者拿几个,后者就对应拿几个.后者赢.
如果想前者赢,那么就让先者的从任意堆拿1个,然后跟着后者拿. 第二题:排列组合公式啊.先把0-9每个数字对应的字母列出来.比如1->a,b,c 2->d,e,f 0->* 那么给定12,可能的组合为C(3,1)*C(3,1) = 9 给定1201,可能的组合为C(3,1)*C(3,1)*C(1,1)*C(3,1) = 27 最后用递归算字符串: C(n,k) = C(n,k-1) + C(n-1,k-1) |
|
返回顶楼 | |
发表时间:2011-10-10
第一题 博弈论
|
|
返回顶楼 | |
发表时间:2011-10-10
最后修改:2011-10-10
第一题应该不难吧.我只要保证我每一次拿完后,两堆一样多我就是必胜的.
|
|
返回顶楼 | |
发表时间:2011-10-10
aidirac 写道 第一题应该不难吧.我只要保证我每一次拿完后,两堆一样多我就是必胜的.
正解 +1 |
|
返回顶楼 | |
发表时间:2011-10-10
看到第一题 就想起了那个题:
说一个圆桌子,然后一大堆相同的硬币,让硬币平铺桌面,两个人谁最后一个放 谁就赢,现在你先放 有什么制胜方法 |
|
返回顶楼 | |