[TL] 难题一道,求解

31 views
Skip to first unread message

unread,
May 20, 2010, 10:09:51 PM5/20/10
to TopLanguage
昨天同学面试回来,带回来一道看似“动脑筋”的题,思前想后,不得解,
希望牛人能指点思路:

有两个绝顶聪明,而且有无限赌资的人进行赌博,赌博规则如下:
1、每个人手里有一个硬币,每个人都能决定自己手里硬币是正面还是反面。
2、每局的结果由两人揭开各自手里的硬币的正反面组合情况决定:
如果两人的硬币都为正面,则甲给乙3元;如果都为反面,则甲给乙1元;
如果一正一反,则乙给甲2元。

问题是:有没有一个人有一种长期看来必赢的策略?

DaiZW

unread,
May 20, 2010, 10:38:25 PM5/20/10
to pon...@googlegroups.com
没有

硬币正反面可以看作是完全随机的, 则
3x1/4 + 1x1/4 = 1 = 2x1/2
所以当局数趋向于无穷大的时候, 甲给乙的钱等于乙给甲的钱,
所以没有一种长期看来必赢的策略.

这是我的理解, 不知道对不对...

2010/5/21 浩 <zhangh...@163.com>:

oliver yang

unread,
May 20, 2010, 10:45:32 PM5/20/10
to pon...@googlegroups.com
问题是每个人都能决定自己正反面啊,出这个题就是要考你这样的思维。

--
Cheers,

Oliver Yang

Twitter: http://twitter.com/yangoliver
Blog: http://blog.csdn.net/yayong
--------------------------------------------------------------------
An OpenSolaris Developer

郑培祥

unread,
May 20, 2010, 10:46:21 PM5/20/10
to pon...@googlegroups.com
我觉得乙可能长期必赢
原因如下:
如果乙确定给正面,甲随机,那么长期看,甲必输
所以乙在随机的时候,稍微偏向一点正面,甲会怎么样?甲无法判断乙什么时候不随机出牌,只要乙不随机而是出正面,那么甲就输了

在 2010年5月21日 上午10:38,DaiZW <shinys...@gmail.com>写道:



--
     此致
敬礼!
                                                             郑培祥
--
Zheng PeiXiang
C++, JAVA, PYTHON, NLP, Semantic Role Labeling
Blog :zheng-peixiang.appspot.com
Twitter: http://twitter.com/zhpx

qiaojie

unread,
May 20, 2010, 10:50:12 PM5/20/10
to pon...@googlegroups.com
如果乙偏向正面,那么甲偏向反面就行了

2010/5/21 郑培祥 <peixian...@gmail.com>

pp

unread,
May 20, 2010, 10:54:20 PM5/20/10
to TopLanguage
因为两人能控制手里的硬币,所以不能单纯的考虑为完全随机。
甲乙从自己的角度出发。对面出正/反的概率为50%

对甲来说:
甲正乙正:-3
甲正乙反:+2
甲反乙正:+2
甲反乙反:-1
甲出正的时候期望是-0.5,出反时+0.5
所以对甲来说正确的策略是一直出反。

对乙来说:
乙正甲正:+3
乙正甲反:-2
乙反甲正:-2
乙反甲反:+1
乙出正的时候期望是+0.5,出反时-0.5
所以对乙来说正确的策略是一直出正。

结果是甲反乙正。乙一次输2元

Mikster.Z

unread,
May 20, 2010, 10:57:15 PM5/20/10
to pon...@googlegroups.com
从甲来看,出反,那么对方正反的几率各为1/2,赢2块钱的几率和输1块的几率一样大。
出正则相反。这是建立在乙是随机的情形下。
乙也可以有相似的逻辑。
那么甲乙都是聪明绝顶的人,那么他们都知道对方会有这样的推论。也就是说任何基于逻辑的策略,对方都选择反制的方式。

变成这样的循环,我随机,对方必然选择偏向某一种决策,那么我就可以选择另一种决策,但是对方必然知道我会选择另一种决策....如此反复,无穷尽也。

而且前后两次决策之间,没有后效。所以基于最大熵模型,最后博弈的结果是随机的是最符合熵增定律的。也就是说没有必胜的策略。


楼上的假设都是基于心理学的,而不是逻辑上的。
@郑培祥  那么你觉得乙的策略在甲使用随机略微偏向反得策略之下会有什么结果?

qiaojie

unread,
May 20, 2010, 11:02:52 PM5/20/10
to pon...@googlegroups.com
这个是博弈问题,出牌策略要根据对方的策略动态调整,而不能采用单一的静态策略。
这个问题是个非线性的问题,其结果根据甲乙是所采用的策略来决定的,这个可
以写一个计算机程序来模拟,在某些策略下,我断定结果会出现混沌状态。
 


 
2010/5/21 pp <yaoy...@gmail.com>

alai

unread,
May 20, 2010, 11:03:05 PM5/20/10
to pon...@googlegroups.com
甲按3/8的概率出正,5/8的概率出反,当然前提是要能够按这个概率来保持随机地出正或反,注意重点是随机,那么不论乙用什么策略,长期下去,甲可以平均每盘赢1/8元。

qiaojie

unread,
May 20, 2010, 11:07:23 PM5/20/10
to pon...@googlegroups.com
那乙一直出正呢?

 
2010/5/21 alai <ala...@gmail.com>

alai

unread,
May 20, 2010, 11:09:57 PM5/20/10
to pon...@googlegroups.com
如果乙一直出正,甲有3/8的概率输掉3元,有5/8的概率赢2元,3/8 * -3 + 5/8 * 2 = 1/8
如果乙一直出反,甲有3/8的概率赢2元,有5/8的概率输掉1元,3/8 * 2 + 5/8 * -1 = 1/8

qiaojie

unread,
May 20, 2010, 11:12:12 PM5/20/10
to pon...@googlegroups.com
对,是我算错了

2010/5/21 alai <ala...@gmail.com>

Mikster.Z

unread,
May 20, 2010, 11:13:25 PM5/20/10
to pon...@googlegroups.com
设甲策略,正概率a
乙策略,正概率b

a*b*3 - a*(1-b)*2 - (1-a)*b*2 + (1-a)(1-b)
9/8*b - 6/8 + 6/8*b - 2*b + 6/8*b + 5/8 - 5/8*b
的确b被约掉了,你对了,我臆断了。

居振梁

unread,
May 20, 2010, 11:13:49 PM5/20/10
to pon...@googlegroups.com
那最简单的方法,第一次都是随机,以后每一次都出对方前一次出的面。
这么一来,第一次的结果即可保证某个人一定会是全赢还是全输。

当然,输的那一方会考虑翻盘,但这个翻盘其实没有价值,因为他们的“赌资无限”

2010/5/21 qiaojie <qia...@gmail.com>

这个是博弈问题,出牌策略要根据对方的策略动态调整,而不能采用单一的静态策略。
这个问题是个非线性的问题,其结果根据甲乙是所采用的策略来决定的,这个可
以写一个计算机程序来模拟,在某些策略下,我断定结果会出现混沌状态。


--
御剑乘风来,除魔天地间。有酒乐逍遥,无酒我亦颠。
http://www.xspirithack.org
一饮尽江河,再饮吞日月。千杯醉不倒,唯我酒剑仙。

DaiZW

unread,
May 20, 2010, 11:14:27 PM5/20/10
to pon...@googlegroups.com
同意.

既然甲乙都是聪明绝顶的人, 那么跟"甲乙都是植物人"没有区别, 所以我说可以看作完全随机的


2010/5/21 Mikster.Z <china...@gmail.com>:

Lei Zhao

unread,
May 20, 2010, 11:15:28 PM5/20/10
to pon...@googlegroups.com
两人都不能预知对方出正还是反,但是对于长期策略而言,双方均可以观察对方的正反频率,并相应调整自己的频率。

从甲的角度而言,如果甲出正超过2/5,则乙可以始终出正,乙必胜;如果甲出正低于1/3,则乙可以始终出反,乙仍必胜。所以甲的最低策略只能是出正概率在1/3到2/5之间。

从乙的角度而言,如果乙出正超过1/3,则甲可以始终出反,甲必胜;如果乙出正低于2/5,则甲可以始终出正,甲仍必胜。但是1/3 < 2/5,所以乙没有最低策略可选。所以甲必胜。

Mikster.Z

unread,
May 20, 2010, 11:16:09 PM5/20/10
to pon...@googlegroups.com
设甲策略,正概率a
乙策略,正概率b

a*b*3 - a*(1-b)*2 - (1-a)*b*2 + (1-a)(1-b)
9/8*b - 6/8 + 6/8*b - 2*b + 6/8*b + 5/8 - 5/8*b


误导大家了,推导了一下,b的因素可以被忽略掉。

我受NIM-SUM解决这类问题影响太深》。。 

guihua wu

unread,
May 20, 2010, 11:16:40 PM5/20/10
to pon...@googlegroups.com

同意,甲乙都是聪明绝顶的人时,应该排除一方出确定面
2010/5/21 DaiZW <shinys...@gmail.com>

Mikster.Z

unread,
May 20, 2010, 11:17:58 PM5/20/10
to pon...@googlegroups.com
我有罪......无限误导.....

Wu Yin

unread,
May 21, 2010, 12:38:49 AM5/21/10
to pon...@googlegroups.com
这东西叫matrix game,一个非常famous的问题。
由于每个人都不知道对方的策略,所以绝对必胜的策略是不存在的。
但是存在混合策略。也就是说每个人都以p_i的概率来选择策略i,最后能使得自己的期望获益最大。

可以给你们讲讲。这个问题本质上是一个线性规划的原始对偶问题。

以甲的观点来看,列一个矩阵A。A的第i行第j列为甲选i乙选j时的获益。设0为正1为反。
比如这道题, A = [ [ -3, 2], [ 2, -1 ] ]

现在我们先假定甲知道乙的策略。一个很明显的事实就是,这种情况下甲的最优获益不会比 不知道对方的策略 要少。我先说最终结论,这种情况下,甲的获益不会有任何的增加,也就是说甲知不知道乙的策略都是无所谓的,或者换句话说,甲可以凭空推导出乙的最优策略,从而指定自己的最优策略;对乙来说,情况也完全相同。并且二人制定出最优策略是相对应的。

言归正传。不妨设甲知道的乙的策略为y,即乙以y[i]的概率来选择i策略。甲在这种情况下要制定一个策略x,使得自己的获益最大。对于任何一个策略i而言,甲获益的期望为x[i] * sigma( y[j] * A[i][j] )。我们要知道乙是很奸诈的,如果你有多个策略,那么乙的最优策略一定会选择 甲多个策略中获益最少的那个策略,然后拼命的让你得到最少的那个获益。所以,当你选择策略x的时候,你的获益实际上是min( x[i] * sigma( y[j] * A[i][j]) )。同时满足0 <= x[i] <= 1且 sigma(x[i]) = 1。注意这里面,由于我们假定我们已知乙的策略y,所以这里面y是常数而不是变量,变量只有x。也就是说,对甲而言,我们要选择的,是以下问题的最优解:
min( x[i] * sigma( y[j] * A[i][j]) )
s.t.
0 <= x[i] <= 1
sigma(x[i]) = 1

将此约束最优化问题化为标准形式,可得
min t
s.t.
0 <= x[i] <= 1
sigma(x[i]) = 1
x[i] * sigma( y[j] * A[i][j]) >= t

对乙来说,可以做同样的分析,得到下面的结果,即乙的策略是以下问题的最优解:
max t
s.t.
0 <= y[i] <= 1
sigma(y[i]) = 1
y[i] * sigma( x[j] * A[i][j]) <= t

如果有一些数学基础的话,你会发现,第一个约束问题的对偶形式正好是第二个问题。而大家都知道,线性规划是满足强对偶性质的。也就是说,第一个问题的最优值与第二个问题的最优值刚好相同,并且在两个问题分别的最优解处取得最优值。所以根据这个结论,我们竟然发现,不论甲乙哪一方,在知道对方策略的情况下,竟然不会有丝毫的优势,因为对方的最优和你的最优是完全吻合的。

而甲究竟是否有必胜策略,很简单,解一下那个约束最优化问题,看看最优值是正是负就好了。


2010/5/21 Mikster.Z <china...@gmail.com>



--
滚滚长江东逝水,浪花淘尽英雄。
是非成败转头空。
青山依旧在,几度夕阳红。
白发渔樵江渚上,惯看秋月春风。
一壶浊酒喜相逢。
古今多少事,都付笑谈中。
----------

Xiamen University Cognitive Science Department, Artificial Brains Library
email: wyw...@gmail.com
gtalk: wyw...@gmail.com
msn: wyw...@hotmail.com
QQ: 346693733

Wu Yin

unread,
May 21, 2010, 12:41:07 AM5/21/10
to pon...@googlegroups.com
给个参考文献出处:
Convex Optimization – Boyd and Vandenberghe
- 5.2 The Lagrange dual problem, 
-- 5.2.5 Mixed strategies for matrix games

有空多看看书,提高提高数学素养,比在这边拍脑袋瞎猜浪费时间强上百倍


2010/5/21 Wu Yin <wyw...@gmail.com>

机械唯物主义 : linjunhalida

unread,
May 21, 2010, 12:59:45 AM5/21/10
to pon...@googlegroups.com
这书是怎么找到的?求索引。stanford的公开课吗?

2010/5/21 Wu Yin <wyw...@gmail.com>

机械唯物主义 : linjunhalida

unread,
May 21, 2010, 1:00:32 AM5/21/10
to pon...@googlegroups.com
恩,还有,TL上面很多题是典型的教科书问题。

2010/5/21 机械唯物主义 : linjunhalida <linjun...@gmail.com>

Wu Yin

unread,
May 21, 2010, 1:01:24 AM5/21/10
to pon...@googlegroups.com
自己搜书名,有免费电子版下载。只有英文的。

2010/5/21 机械唯物主义 : linjunhalida <linjun...@gmail.com>

机械唯物主义 : linjunhalida

unread,
May 21, 2010, 1:02:32 AM5/21/10
to pon...@googlegroups.com
我是说你是通过什么途径知道这样一本书的?

2010/5/21 Wu Yin <wyw...@gmail.com>

Wu Yin

unread,
May 21, 2010, 1:03:51 AM5/21/10
to pon...@googlegroups.com
朋友推荐:)
hehe, 所以有时认识牛人朋友还是很有好处的:)

2010/5/21 机械唯物主义 : linjunhalida <linjun...@gmail.com>

机械唯物主义 : linjunhalida

unread,
May 21, 2010, 1:06:59 AM5/21/10
to pon...@googlegroups.com
赶紧把朋友邀请过来TL吧。

2010/5/21 Wu Yin <wyw...@gmail.com>

unread,
May 21, 2010, 1:09:20 AM5/21/10
to TopLanguage
哎,惭愧,看来理论还不到家,泪奔

On 5月21日, 下午12时41分, Wu Yin <wyw...@gmail.com> wrote:
> 给个参考文献出处:
> Convex Optimization - Boyd and Vandenberghe


> - 5.2 The Lagrange dual problem,
> -- 5.2.5 Mixed strategies for matrix games
>
> 有空多看看书,提高提高数学素养,比在这边拍脑袋瞎猜浪费时间强上百倍
>
> 2010/5/21 Wu Yin <wyw...@gmail.com>
>
>
>
>
>
> > 这东西叫matrix game,一个非常famous的问题。
> > 由于每个人都不知道对方的策略,所以绝对必胜的策略是不存在的。
> > 但是存在混合策略。也就是说每个人都以p_i的概率来选择策略i,最后能使得自己的期望获益最大。
>
> > 可以给你们讲讲。这个问题本质上是一个线性规划的原始对偶问题。
>
> > 以甲的观点来看,列一个矩阵A。A的第i行第j列为甲选i乙选j时的获益。设0为正1为反。
> > 比如这道题, A = [ [ -3, 2], [ 2, -1 ] ]
>
> > 现在我们先假定甲知道乙的策略。一个很明显的事实就是,这种情况下甲的最优获益不会比 不知道对方的策略

> > 要少。我先说最终结论,这种情况下,甲的获益不会有任何的增加,也就是说甲知不知道乙的策略都是无所谓的,或者换句话说,甲可以凭空推导出乙的最优策略,从而指-定自己的最优策略;对乙来说,情况也完全相同。并且二人制定出最优策略是相对应的。
>
> > 言归正传。不妨设甲知道的乙的策略为y,即乙以y[i]的概率来选择i策略。甲在这种情况下要制定一个策略x,使得自己的获益最大。对于任何一个策略i而言,甲-获益的期望为x[i]


> > * sigma( y[j] * A[i][j] )。我们要知道乙是很奸诈的,如果你有多个策略,那么乙的最优策略一定会选择
> > 甲多个策略中获益最少的那个策略,然后拼命的让你得到最少的那个获益。所以,当你选择策略x的时候,你的获益实际上是min( x[i] * sigma(
> > y[j] * A[i][j]) )。同时满足0 <= x[i] <= 1且 sigma(x[i]) =
> > 1。注意这里面,由于我们假定我们已知乙的策略y,所以这里面y是常数而不是变量,变量只有x。也就是说,对甲而言,我们要选择的,是以下问题的最优解:
> > min( x[i] * sigma( y[j] * A[i][j]) )
> > s.t.
> > 0 <= x[i] <= 1
> > sigma(x[i]) = 1
>
> > 将此约束最优化问题化为标准形式,可得
> > min t
> > s.t.
> > 0 <= x[i] <= 1
> > sigma(x[i]) = 1
> > x[i] * sigma( y[j] * A[i][j]) >= t
>
> > 对乙来说,可以做同样的分析,得到下面的结果,即乙的策略是以下问题的最优解:
> > max t
> > s.t.
> > 0 <= y[i] <= 1
> > sigma(y[i]) = 1
> > y[i] * sigma( x[j] * A[i][j]) <= t
>

> > 如果有一些数学基础的话,你会发现,第一个约束问题的对偶形式正好是第二个问题。而大家都知道,线性规划是满足强对偶性质的。也就是说,第一个问题的最优值与第-二个问题的最优值刚好相同,并且在两个问题分别的最优解处取得最优值。所以根据这个结论,我们竟然发现,不论甲乙哪一方,在知道对方策略的情况下,竟然不会有丝-毫的优势,因为对方的最优和你的最优是完全吻合的。
>
> > 而甲究竟是否有必胜策略,很简单,解一下那个约束最优化问题,看看最优值是正是负就好了。
>
> > 2010/5/21 Mikster.Z <chinamix...@gmail.com>
>
> >> 我有罪......无限误导.....


>
> >> 在 2010年5月21日 上午11:16,guihua wu <guihuawu8...@gmail.com>写道:
>
> >>> 同意,甲乙都是聪明绝顶的人时,应该排除一方出确定面

> >>> 2010/5/21 DaiZW <shinysky1...@gmail.com>


>
> >>> 同意.
>
> >>>> 既然甲乙都是聪明绝顶的人, 那么跟"甲乙都是植物人"没有区别, 所以我说可以看作完全随机的
>

> >>>> 2010/5/21 Mikster.Z <chinamix...@gmail.com>:


> >>>> > 从甲来看,出反,那么对方正反的几率各为1/2,赢2块钱的几率和输1块的几率一样大。
> >>>> > 出正则相反。这是建立在乙是随机的情形下。
> >>>> > 乙也可以有相似的逻辑。
> >>>> > 那么甲乙都是聪明绝顶的人,那么他们都知道对方会有这样的推论。也就是说任何基于逻辑的策略,对方都选择反制的方式。
>
> >>>> 变成这样的循环,我随机,对方必然选择偏向某一种决策,那么我就可以选择另一种决策,但是对方必然知道我会选择另一种决策....如此反复,无穷尽也。
> >>>> > 而且前后两次决策之间,没有后效。所以基于最大熵模型,最后博弈的结果是随机的是最符合熵增定律的。也就是说没有必胜的策略。
>
> >>>> > 楼上的假设都是基于心理学的,而不是逻辑上的。
> >>>> > @郑培祥 那么你觉得乙的策略在甲使用随机略微偏向反得策略之下会有什么结果?

> >>>> > 在 2010年5月21日 上午10:46,郑培祥 <peixiang.zh...@gmail.com>写道:
>
> >>>> >> 我觉得乙可能长期必赢
> >>>> >> 原因如下:
> >>>> >> 如果乙确定给正面,甲随机,那么长期看,甲必输
> >>>> >> 所以乙在随机的时候,稍微偏向一点正面,甲会怎么样?甲无法判断乙什么时候不随机出牌,只要乙不随机而是出正面,那么甲就输了
>

> >>>> >> 在 2010年5月21日 上午10:38,DaiZW <shinysky1...@gmail.com>写道:
>
> >>>> >>> 没有
>
> >>>> >>> 硬币正反面可以看作是完全随机的, 则
> >>>> >>> 3x1/4 + 1x1/4 = 1 = 2x1/2
> >>>> >>> 所以当局数趋向于无穷大的时候, 甲给乙的钱等于乙给甲的钱,
> >>>> >>> 所以没有一种长期看来必赢的策略.
>
> >>>> >>> 这是我的理解, 不知道对不对...
>

> >>>> >>> 2010/5/21 浩 <zhanghao.p...@163.com>:

> QQ: 346693733- 隐藏被引用文字 -
>
> - 显示引用的文字 -

Changsheng Jiang

unread,
May 21, 2010, 1:11:31 AM5/21/10
to pon...@googlegroups.com
啰嗦, 这么长, 转了几个不相关的概率, 什么都没说.


                                                     Changsheng Jiang


2010/5/21 Wu Yin <wyw...@gmail.com>

Wu Yin

unread,
May 21, 2010, 1:14:43 AM5/21/10
to pon...@googlegroups.com
无所谓,你认为罗嗦你可以看那本书的原文,也可以不要看,反正你看不堪对我没有任何损失。
好了,不口水仗了,这种无聊的喷唾沫行为我在这帖子里面只干这一次,我认为我给的信息已经很充分了,你要还想喷,恕不奉陪。

2010/5/21 Changsheng Jiang <jiang...@gmail.com>

Lucas Zhang

unread,
May 21, 2010, 1:19:17 AM5/21/10
to pon...@googlegroups.com
有一个问题:既然甲知道的乙的策略为y,且y为常数,应该是甲根据y来选择使自己获益最大的那个策略x吧?甲的获益为什么不是max( x[i] * sigma( y[j] * A[i][j]) )呢?

2010/5/21 Wu Yin <wyw...@gmail.com>



--
Zhang Qing (张卿)
@SJTU ShangHai

Wu Yin

unread,
May 21, 2010, 1:29:12 AM5/21/10
to pon...@googlegroups.com
哦,不是这样。我有些细节说的可能确实不太明确,而且一些方面简化了一点,主要讲的是思想。包括我刚才看了一下我写的那个约束方程也有点问题,可能有点赶时间。不过透过这些字面的形式的东西去看本质,基本思路是没错的。

我的意思是说,乙已经通过某种方法决定了自己的“最优方案”。你先不要管这个方案是怎么得来的,也先不要怀疑这个方案是否真的存在。你可以先假设“如果存在会怎样”,因为只要式子列出来,最后跟据强对偶原理,你会发现最优解真的是存在的。

你可以这么想,甲每决定一个方案,这个方案对甲的最大收益是多少呢?你得把乙考虑进去,由于这是乙的最优方案,所以甲选择的n个策略有n个收益,其中最小的那个才会发会作用,如果是最大的那个发挥作用,那这个方案又怎么能说得上是对乙“最优”呢?所以不管这个策略里面其他的选择有多么好,只要乙是奸诈的,是聪明的,你就必然不会得到那些美好策略的结果,而只能是最坏策略的收益。所以你优化的目标就是 让最坏策略的收益最大,这样才能保证是个好方法。
所以优化的目标(对不起,之前写错了)是max ( min( x[i] * sigma(y[j] * A[i][j]) ) )

你要是还不明白,可以去看看我说的那本书的相关章节。不过那里面数学公式就多了,而且需要你对那本书的前一半的数学基础有了解……

2010/5/21 Lucas Zhang <zhangq...@gmail.com>

Changsheng Jiang

unread,
May 21, 2010, 1:38:00 AM5/21/10
to pon...@googlegroups.com
甲有必赢策略.

当甲以概率 p 出正, 乙以概率 q 出正, 则每局甲收益期望是

-3pq - (1- p)(1 - q) + 2p(1-q) + 2q(1-p) = 3p + 3q - 8pq - 1 = 3p + (3 - 8p)q - 1.

甲以概率 3/8 出正, 则无论乙以什么概率出, 甲每局赢的期望是 1/8 元.

小题目还是不要扯得太远, 给直接说法的好.

                                                     Changsheng Jiang

Wu Yin

unread,
May 21, 2010, 1:40:48 AM5/21/10
to pon...@googlegroups.com
好吧,或许是你我理念不同。我只是想对这一类问题整个给一个解答罢了。
下次换成2*3, 3*3, 甚至n*n的矩阵,我希望仍然能解,而不仅仅是就事论事。

2010/5/21 Changsheng Jiang <jiang...@gmail.com>

Wu Yin

unread,
May 21, 2010, 1:41:53 AM5/21/10
to pon...@googlegroups.com
而且我相信,这也是讨论的最精华意义所在,不是么?
:)

2010/5/21 Changsheng Jiang <jiang...@gmail.com>

Lucas Zhang

unread,
May 21, 2010, 1:43:43 AM5/21/10
to pon...@googlegroups.com
这回有点明白了:)
其实那本书我很早之前就从图书馆借出来过,不过是帮同学借的-_- 有空再借出来看看

2010/5/21 Wu Yin <wyw...@gmail.com>

Lei Zhao

unread,
May 21, 2010, 1:52:10 AM5/21/10
to pon...@googlegroups.com
同意,通解更有意义

2010/5/21 Wu Yin <wyw...@gmail.com>

DaiZW

unread,
May 21, 2010, 3:16:30 AM5/21/10
to pon...@googlegroups.com
所谓抛砖引玉嘛

2010/5/21 Wu Yin <wyw...@gmail.com>:

Jacky, Z

unread,
May 22, 2010, 3:39:06 AM5/22/10
to pon...@googlegroups.com
Changsheng Jiang正解,面试题目,别扯这么远了

陈磊

unread,
May 20, 2010, 11:18:07 PM5/20/10
to pon...@googlegroups.com

甲出正的概率在(1/3,2/5)之间即可,甲可赢

Yongwei Wu

unread,
May 26, 2010, 2:30:57 AM5/26/10
to pon...@googlegroups.com
对这样的面试题,个人深表怀疑。

能在面试时间限制里答对该题的朋友们,有谁是以前没见过类似的题目的?

不管答没答对,谁在工作中碰到同样难度的问题过?

个人结论,这样的题目对招聘好程序员没有帮助。

2010/5/21 浩 <zhangh...@163.com>:
> 昨天同学面试回来,带回来一道看似"动脑筋"的题,思前想后,不得解,
> 希望牛人能指点思路:
>
> 有两个绝顶聪明,而且有无限赌资的人进行赌博,赌博规则如下:
> 1、每个人手里有一个硬币,每个人都能决定自己手里硬币是正面还是反面。
> 2、每局的结果由两人揭开各自手里的硬币的正反面组合情况决定:
> 如果两人的硬币都为正面,则甲给乙3元;如果都为反面,则甲给乙1元;
> 如果一正一反,则乙给甲2元。
>
> 问题是:有没有一个人有一种长期看来必赢的策略?

--
Wu Yongwei
URL: http://wyw.dcweb.cn/

Jacky, Z

unread,
May 26, 2010, 11:11:58 AM5/26/10
to pon...@googlegroups.com
这题就较新颖的概率问题,考察分析问题的能力,作为面试题
还是多不错的,估计面试官也是想看应聘者分析问题,思考问题
的能力,至于这和好的程序员是否有关系就是仁者见仁了,面试
官既然出这种题,必然是想测试应聘者某一方面的能力。

分析起来思路也比较清晰,设甲出正面的概率为a,乙出正面的概率为b,
列一下甲赢的期望,如果可以找到a使得对任意的b(0-1)期望都为正就可以了。
E=-3ab-(1-a)(1-b)+2a(1-b)+2b(1-a)
  =-8ab+3a+3b-1
  =(3-8a)b+3a-1
所以甲控制出正面的概率为3/8时,可获得E=1/8,但甲必须能够控制出正面
的随机性,不能给聪明的乙任何机会。

其实我们遇到不熟悉风格的题目时,第一印象大脑就会蒙掉,如果我们坚信能
够解决问题,从而仔细的去分析问题,一些问题就可以解决,更重要的应该是
一种态度吧,我感觉。

Serenade

unread,
May 30, 2010, 8:31:44 AM5/30/10
to pon...@googlegroups.com
事实上,面试题,笔试题,主要看考官是个什么类型的,有些考官主要看思路,没有标准答案,有些就是按部就班的;

举个例子,我在笔试题里出个编码题:请实现一个Java的线程池

你直接用ArrayList<Thread>和synchronized实现当然算对
不过呢,你如果直接用
java.util.concurrent.ThreadPoolExecutor
写个使用例子,然后在旁边写上一句“写不出好的,直接用concurrent库了”
也算对,
甚至于,你只知道concurrent库,我也认为已经点到了,可以赢得面试机会(有可能会在面试时旧事重提,如果回答圆满,也认为学习能力OK)

然后就按质量,自己写写得好的算上选,写个concurrent使用例子的算中上选,自己写写得不好的中选

Jeffrey Zhao

unread,
May 30, 2010, 10:05:14 AM5/30/10
to pon...@googlegroups.com
遇到此类问题我都认为不允许使用类库已经提供的功能的……

Jeffrey Zhao
Blog: http://blog.zhaojie.me/
Twitter: @jeffz_cn

--------------------------------------------------
From: "Serenade" <seren...@gmail.com>
Sent: Sunday, May 30, 2010 8:31 PM
To: <pon...@googlegroups.com>
Subject: Re: [TL] 难题一道,求解

Serenade

unread,
Jun 8, 2010, 9:06:22 AM6/8/10
to pon...@googlegroups.com
所以我说这是看考官是个什么类型的
在我看来,能点到就可以了,如果能在复试时旧事重提来证明你的学习能力那更好
毕竟现在做开发,仅仅是语言的标准库的讯息量就是海量的,老是重复造轮子会浪费大量时间,也容易导致第三人维护期的悲剧,只有现成的通用库性能不足或者功能不足的情况下,才需要改进轮子。

2010/5/30 Jeffrey Zhao <je...@live.com>:

Reply all
Reply to author
Forward
0 new messages