|
 
- UID
- 16398
- 人品评价
- 88
- 破案学分
- 13
- 侦探声望
- 0
- 推俱英镑
- 29 金币

|
47#
发表于 2009-6-30 19:19
| 只看该作者
【9】108、36
假设三人依次为A,B,C
首先不考虑A、B的确切值
假设A=108,B=36,C=144
第一次:
A猜,自己可能是108 或者180
B猜,自己可能是36 或者252
C猜,自己可能是72 或者144
第二次:
A猜不知道,B猜不知道,那么C说知道了自己是144,那么,他肯定是排除了自己是72这种可能性,所以才说是144,那么,他是怎么否定自己不是72呢?C在想,如果自己是72。
那么,第一次猜的结果如下:
A以为自己是108或者36
B以为自己是36或者180
而第一次问答结束的时候,C也没有答出自己的数,那么,在第二次循环问话的时候,A应该知道自己是108了(因为,如果自己是36,怎C第一次就知道36-36=0是不可能的,那么自己不是36,所以是108),但遗憾A并没能说出自己的数字,B当然也不能说出自己的数字,显然,根据第二次A没能说出自己的数字,C就排除了自己是72的可能性,那么自己当然就是144了。
其实本题是我校有一年的编程大赛的试题【原题如上】(以下第一步是本人的解答)
第一步分析编程:(得出一般性方法)
假设我们用第一位、第二位、第三位学生分别表示A,B,C三人。经推论,无论三个数如何变化,无论从谁开始提问,必然是头上数最大的人最先猜出自己头上的数。
由上述结论,对于,(a1,a2,a3,k)可以定义f(a1,a2,a3,k)的递推式:
当k=1时
当a2=a3时,f(a1,a2,a3,1)=1
当a2>a3时,f(a1,a2,a3,1)=f(a2-a3,a2,a3,2)+2
当a2<a3时,f(a1,a2,a3,1)=f(a3-a2,a2,a3,3)+1
当k=2时 当a1=a3时,f(a1,a2,a3,2)=2
当a2>a3时,f(a1,a2,a3,2)=f(a1,a1-a3,a3,1)+1
当a2<a3时,f(a1,a2,a3,2)=f(a1,a3-a1,a3,3)+2
当k=3时
当a1=a2时,f(a1,a2,a3,3)=3
当a1>a2时,f(al,a2,a3,3)=f(a1,a2,a1-a2,1)+2
当al<a2时,f(a1,a2,a3,3)=f(a1,a2,a2-a1,2)+1
由于我们只考虑(a1,a2,a3,k)∈= S3,因此k可由a1,a2,a3三个数直接确定,因此f(a1,a2,a3,k)可以简化为f(a1,a2,a3)。可有此思路解决?
第二步,通过上述分析解答下问
一位逻辑学教授有n(n≥3)名非常善于推理且精于心算的学生。有一天,教授给他们出了一道题:教授在每个人脑门上贴了一张纸条并告诉他们,每个人的纸条上都写了一个大于0的整数,且某个数等于其余n-1个数的和。于是,每个学生都能看见贴在另外n-1个同学头上的整数,但却看不见自己的数。
教授轮流向学生发问:是否能够猜出自己头上的数。经过若干次的提问之后,当教授再次询问某人时,此人突然露出了得意的笑容,把贴在自己头上的那个数准确无误地报了出来。
我们的问题就是:证明是否有人能够猜出自己头上的数,若有人能够猜出,则计算最早在第几次提问时有人先猜出头上的数,分析整个推理的过程,并总结出结论。
---------------------------
感兴趣的探迷们不妨可试试。
【10】 蓝车看成蓝车 15%*80%=12%
蓝车看成绿车 15%*20%=3%
绿车看成蓝车 85%*20%=17%
绿车看成绿车 85%*80%=68%
肇事的车是蓝车的概率:12%/(12%+17%)=12/29
[ 本帖最后由 dwk147 于 2009-6-30 19:22 编辑 ] |
|