讨论EMC面试题

1:有1000个瓶子,其中有一个装的毒药。用老鼠来测验。老鼠吃到毒药七天后才会死亡。请问至少需要多少老鼠才能得出哪个瓶子里装的是毒药?

 

[Answer:] 对每只老鼠来讲, 要么死,要么活. 所以每只老鼠能代表两种状态(0, 1). 而对药来讲, 要么是编号(0001)中毒, 又或者是编号(0999),或(1000)中毒. 共1000种情况. 问题就演变成 要多少只老鼠能表示1000种状态. 即

                         2 * 2 * .... * 2 >= 1000

 

显然只要10只老鼠即可. 具体操作是 .  0001给第一只老鼠吃,  0002给第二只吃,  0003给一,二两只吃.  0004给第三只吃, 一次类推.

 

 

2:a b  c  
           d 
           e f g 
                h 
                i 
它们是0到9中的不同的数,满足a+b+c,c+d+e,e+f+g,g+h+i,结果都等于13,请问e等于几? 

 

[Answer:]

先找出所有可能得组合(9,3,1) (8,4,1)(8,3,2)(7,5,1)(7,4,2)(6,5,2)(6,4,3) 然后进行拼接.

(9)只有一种可能,所以可以断定c,e,g肯定不会是9. (9,3,1)种能重复得只有1 和3. 分别推下去, 则得

 

( 9,3,1) -> (1,4,8)  ->(4, 7, 2)  -> (2, 5, 6)

            ->(1, 5, 7) -> (5, 2, 6) -> (2, 4, 7)

所以e 可能是 1, 4, 5, 2

 

3. 在父亲/母亲/儿子/奶奶中有一人是医生,另一人是律师
现在:
1、如果医生比律师年轻,那么他们没有血缘关系;
2、如果医生是一个女人,那么医生和律师有血缘关系;
3、如果医生是一个男人,那么律师也是一个男人;
那么:
A、父亲是医生
B、母亲是医生
C、儿子是医生
D、奶奶是医生
E、都不对

[Answer:]
因为医生要么为男,要么为女。所以2,3必有一个成立

假设2成立,女人只有奶奶和妈妈。
如果奶奶为医生,要满足2,律师为父亲或儿子,同样满足1
如果妈妈为医生,要满足2,律师只能为儿子,同样满足1

假设3成立,医生和律师都为男人,男人只有父亲和儿子
而要满足1,医生必须比律师老
于是医生为父亲,律师为儿子

 

 

4、两个人往圆桌上放硬币,最后谁没有地方放,谁就为输家。你先放,请问有致胜方法吗?

 

[Answer:]
此题应该是先摆者拥有决定获胜的权利:先把在圆桌的中心,然后,别人摆哪里,他就摆在别人的同一条直径的对称

点上,必胜。

同时,本题还可以采用极端思考的方法:假设桌面就只有一枚硬币那么大,那么先摆者直接获胜。

 

 

5、有两堆东西,一份有4个、一份有7个,两个人开始拿东西,一次可拿任意多个,但只能从一份中拿。现规定:如

果最后剩下1个,而且轮到谁拿谁就输了,现在你先拿,请问有致胜方法吗?

 

[Answer:]

自己做了一下:先随便自己和自己玩了几把看看,同时有了上一题的经验,有个对方怎么做我也怎么做的想法,就是

维持状态。然后发现如果出现2、2,那么对方必输。还有一个就是在纸上画的时候要用表格类似的形式,这样看着清

楚,思路清楚。
好的,第一次从7里拿3。这样是4、4。然后对方如果把一堆拿到1,就把另一堆拿完;如果对方拿完一堆,就把另一

堆拿到1。否则对方拿几个,我就另一堆拿几个。这样总能拿到2、2。

 

6、请你实现一个交换数值类型变量的函数;(2)如果不用中间变量如何实现;(3)不用中间变量的交换算法的最

好解决是什么?
(3)我觉得最后那个好,因为+和-可能溢出。最后那个的原理是一个数异或另一个数两次又会变回原来那个数。
template <typename Type>
void swap(Type &a, Type &b)
{
    Type tmp;
    tmp = a;
    a = b;
    b = tmp;
}
template <typename Type>
void swap(Type &a, Type &b)
{
    a = a - b;
    b = a + b;
    a = b - a;
}template <typename Type>
void swap(Type &a, Type &b)
{
    a = a ^ b;
    b = b ^ a;
    a = a ^ b;
}


 

posted on 2008-07-31 15:31  Joe.W.Chen  阅读(1696)  评论(0编辑  收藏  举报

导航