您的位置:首页 > 其它

新浪2014校招的两道笔试题. [搬萝卜 & 取水果]

2013-10-18 11:02 162 查看
【转载请注明出处: http://blog.csdn.net/lzl124631x

2. (10分) 一只小兔子有100根胡萝卜, 它要走50米才能到家, 每次它最多搬50根胡萝卜, 而每走1米就要吃掉1根胡萝卜, 请问它最多能把多少根胡萝卜搬到家里?

3. (10分) 有任意种水果, 每种水果个数也是任意的, 两人轮流从中取出水果, 规则如下:

1) 每一次应取走至少一个水果; 每一次只能取走一种水果的一个或者全部.

2) 如果谁取到最后一个水果就胜.

给定水果种类 N 和每种水果的个数 M1, M2, ..., Mn, 算出谁取胜.

Time to rack your brain, dude.

[Carrot Problem]

一旦折返, 折返的路程上花费为 3c/m; 不折返的话花费为 1c/m.

因此需要尽量减小折返, 确保最后不折返的时候带的萝卜尽量多(上限50个).

假设总折返距离为 x(m), 有 100 - 3x <= 50, 即 x >= 50 / 3

最后剩下的萝卜个数为: (100 - 3x) - (50 - x) = 50 - 2x <= 50 / 3

因此, 至多剩下 16 个萝卜(只能取整数的话), 此时折返路程为 17m.

能取分数的话直接取等号就行了, 不再赘述.

[Fruit Problem]

我用归纳法做出来的. 之前想了很多情况想直接推理出来, 但是越弄越乱.

我一开始没有注意到一个事实:

此题为求必胜策略的题, 每次取水果之前的必胜与否是由取之后的必败与否决定的.

因此应该先进行从简单到复杂的递推, 然后归纳找规律.

假设两个人分别为 A 和 B, A 先取水果. 水果总个数为 M (即 M1 + M2 + ... + Mn). 开始分情况讨论:

(1) 有 1 种水果

A 必胜
(2) 有 2 种水果

此时两个人都不敢全部拿走一种水果, 因为那样会送对方进入(1)的必胜态, 自己必败.

所以两个人都只能一个一个拿, 这样谁拿走最后一个就由 M 的奇偶性决定.

若 M 是奇数, A 必胜; 否则 A 必败.
(3) 有 3 种水果

A先取, 他有足够的主动权, 让 B 进入(2)的必败态.

如果 M 是奇数, 说明至少有一种水果有奇数个, 全部取走这一种水果后, B 就会进入(2)中的必败态(M' 为偶数), 因此, A 必胜;

如果 M 是偶数, 由于 N 为 3, 因此至少有一种水果有偶数个, 全部取走这一种水果后, B 就会进入(2)中的必败态(M' 为偶数), 因此, A 必胜;

综上, A 必胜

(4) 有 4 种水果

A 先取, 他不敢全部取走一种, 因为会送 B 进入(3)的必胜态, A 就必败.

因此 A 只能取一个.

a) 若 A 取走这一个就变成(3)了, 说明 4 种水果都只有一个(否则 A 可以避免取走一种).
此时 M 为偶数 4 且 A 必败.

b) 若 A 取完这一个还剩 4 种水果, 那 B 同上分析也只敢取一个.

依次类推, 谁最后面对a)的情况就必败了.
因此胜负由 M - 4 的奇偶性决定, 它与 M 的奇偶性相同. (其实(2)中也可以想成由 M - 2 的奇偶性决定)
若 M 为奇数, A 必胜; 否则 A 必败.

综合 a) 与 b) 若 M 为奇数, A 必胜; 否则 A 必败.

至此, 已经可以看到规律了.

1. 若 N 为奇数, A 必胜;

2. 若 N 为偶数且 M 为奇数, A 必胜;

3. 否则 A 必败.

形象点儿的话, 用一个表描述.

"奇"代表"有奇数个水果的品种数", "偶"含义类似

"胜负"为 1 代表 A 必胜, 0 代表 A 必败

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: