新加坡奥数题,从这三句话里你能推断出Cheryl的生日是哪一天么?

话说。。最近一道新加坡初中数学奥赛题。。。在facebook上都吵翻天了。。。。 下面就是题目,从这三句话里你能推断出Cheryl的生日是哪一天么???

http://weibo.com/2549228714/CdcBpFaPk

推荐  (3) | 44人关注关注
31个答案
78 8

游识猷科学松鼠会成员

2015-04-14 11:15
5.15 5.16 5.19

6.17 6.18

7.14 7.16

8.14 8.15 8.17


A知道月份,B知道日子

A知道B单单从日期推不出日子,所以A知道日子不可能是只出现了一次的18 或 19,所以A知道月份是7或8

B知道月份是7或8后立刻就知道了生日,说明B知道的不是14,而是7.16 8.15 8.17中的一个

A知道B立刻知道生日后也立刻知道了生日,说明A知道的月份不是8月,否则仍有两个可能性

综上,7.16

64 2

我们一定要尽力用机械的、不变的、形而上的观点去看待问题和解决问题。

扩展:已经可以解决那个一个知道和一个知道积的问题了。

http://www.15yan.com/story/k7kTf4bT314/

扩展到下一个问题:

已知x>y,属于[2,99]的整数,A知道x+y,B知道x*y。然后三个陈述是:

statement 1.A知道B不知道,A也不知道。

statement2.B知道了。

statement3.A知道了。

我不要知道什么素数的定义,也不要知道什么哥德巴赫猜想。我就是要用简单粗暴的、机械的、不变的、形而上的方法去解决。





规则:

1.『X知道』,划掉Xinfo<>0的行或列

2.『X不知道』,划掉Xinfo=0的行或列

3.『X知道Y知道』,划掉Yinfo<>0的行或列

4.『X知道Y不知道』,划掉含有Yinfo=0所在元素的行和列

5.『X不知道Y知道(或不知道)』,无法操作

%% step 0.,初始化,设x+y所有的和是向量S,x*y所有的积是向量P

x=[2,99];

pairx=combntns(x,2); % 从x中取得两个数的组合。这个函数好像要被MatLab废弃掉了。

S=pairx(:,1)+pairx(:,2);

P=pairx(:,1)*pairx(:,2);

%% step 1. 产生矩阵M,使得其中M(i,j)=1时,存在一对pairx满足其和=S(i),积=P(j),这一段写得超精彩的。Matlab的unique函数返回3个向量,参考MatLab的帮助链接

[CsumX,ia_sumX,ic_sumX]=unique(S);

[CproX,ia_proX,ic_proX]=unique(P);

M=sparse(ic_proX,ic_sumX,1,numel(CproX),numel(CsumX));

Mirror=sparse(ic_proX,ic_sumX,CproX(ic_proX)+1i*(CsumX(ic_sumX)),numel(CproX),numel(CsumX));

(图注,这是以x=[2:6]为例生成的M矩阵,行是求和中唯一值,例如7=2+5,7=3+4是重复的,合成到一个7里面,列是求积的唯一值,矩阵中M=1的是存在x,y数对满足其所对应的和与积,比如和=7的列中有两个1,分别对应积=10和12,就是数对(2,5)和(3,4)。)

%生成一个Mirror矩阵是因为后面对矩阵的操作也没有记录,所以产生一个Mirror矩阵,对M矩阵做什么操作,就同样的对Mirror做什么操作。此时使用了复数的实部来记录乘积,用复数的虚部来记录和,这样可以在一个元素位置上记录两个互相独立的数据。

(图注,这是Mirror矩阵的虚部,也就是两个数的和)


%% step 2. 根据M矩阵,计算A和B各自所需信息量,

infoA=log2(sum(M,1));

infoB=log2(sum(M,2));

%% step3. 按照各句陈述调用规则,对M进行处理,然后重复%%step 2

% statement 1 .A知道B不知道,A也不知道。

% 使用规则4.『X知道Y不知道』,划掉含有Yinfo=0所在元素的行和列

zeroB=find(infoB==0);

[M,Mirror]=delM(M,Mirror,zeroB,[]);%这里自定了一个函数,后面解释

infoA=log2(sum(M,1));

infoB=log2(sum(M,2));

(图注,这是经过statement 1,以后筛选出来的Mirror矩阵的虚部,注意到矩阵的大小已经减小了许多)
% statement 2. B知道了。

%使用规则1,『X知道』,划掉Xinfo<>0的行或列

nzeroB=find((infoB~=0));

M(nzeroB,:)=[];

Mirror(nzeroB,:)=[];

infoA=log2(sum(M,1));

infoB=log2(sum(M,2));

(图注,这是经过statement 2筛选以后,Mirror矩阵的虚部,看起来好像仅仅是上图的裁剪和放大)


% stamet 3,A也知道了。

%使用规则1,『X知道』,划掉Xinfo<>0的行或列

nzeroA=find((infoA~=0));

M(:,nzeroA)=[];

Mirror(:,nzeroA)=[]

(图注,只剩下一个唯一解。)


补充说明上面规则4中,划掉含有Yinfo=0所在元素的行和列的方法,函数中del1和del2是预先找到的Yinfo=0的行或者列:

function [ M,Mirror ] = delM( M,Mirror,del1,del2 )

Mtemp=double(M);

Mtemp(:,del2)=1i.*Mtemp(:,del2);

Mtemp(del1,:)=1i.*Mtemp(del1,:);

% 这里又使用了复数的方案,因为要找到该行或者列中的非零数字。而如果把这组行或者列独立出来的话,找到的元素位置是新切割出来的小矩阵的位置,所以即想找到特定的元素,又想放入到原矩阵中去找,就干脆用复数的虚部来标记了。

[p,q]=find(imag(Mtemp)>0);

M(p,:)=[];

M(:,q)=[];

Mirror(p,:)=[];

Mirror(:,q)=[];

end

上面就是一个很鲁棒的方法,来处理暴力解决问题。

问题的再扩展!

如果有上面的方法了,就又可以扩展问题了。http://www.guokr.com/question/600659/

[2,N]之间的整数对x,y,x<y;

A知道x,y的和;B知道x,y的积;

1)A说:我知道B不知道,我也不知道;

2)B说:我知道了;

3)A说:我知道了;

问:N最大是多少时无需第4句就可以确定(x,y) 的唯一解?

解答其实很简单啦,用上面的程序把x=[2:99]中的99改了,试几次就知道了。答案是在1680的时候,仅仅使用3句陈述就仍然找到(4,13)这组解。而到了1681的时候,则有(4,13)和(4,61)两组解。是需要再增加新的限定才能形成唯一解的。虽然新出现的解是仍然是在2,99之间,但我想可能是因为超过99的限定以后,4,61这组解可能与第1或第2句陈述相违背。





综上

整个方法是在努力寻求一种与问题形式有关,而与具体内容无关通解——先写出M矩阵,用1,0来标记出可能的位置,行列则分别是双方掌握的信息。然后就按照几个确定的规则进行反复调用操作就可以了。

有一种使用求根公式的快感。

这就是我喜欢追求的——机械、不变、形而上的解决方案的一个实例。





update。

@utahtsi https://twitter.com/utahtsi 提出N=436才是解,并且给出了证据:

https://twitter.com/utahtsi/status/588348752970133505/photo/1


我的运算过程是操作性的,好像很难给出证明,于是我现在并不知道正确与否。继续讨论吧。另外,我测试了一下,N最小=62,低于这个数也无法解出唯一解。



43 3

魏郎尔游离在物理和化学之间

2015-04-14 11:40

啊这个是奥数的经典题型(里面最简单的一个变种了):P先生和Q先生的信息谜题

在这个例子里,很简单:根据不知道的情况逐步排除就是了。

May 15 16 19

Jun 17 18

Jul 14 16

Aug 14 15 17

A知道月份,B知道日子。

第一步:A不知道,A确信B不知道。

这是最关键的一步推理注意确信二字,这很强的。

B要怎么能从日子猜月份?唯一的可能是日子是18或者19,这样直接对应5月和6月。

但是A确信B不知道,所以B不可能是18或者19。但A不知道日子,这个不可能怎么保证?唯一的办法是,A知道月份不是5月和6月,所以不可能是这俩日子。

所以5和6月排除了。于是更新为:

Jul 14 16

Aug 14 15 17

第二步:在排除了这一堆之后,B知道了。

知道7月和8月就能判断,那么肯定不是二者共享的14日。所以它排除了。

更新为

Jul 16

Aug 15 17

第三步:现在A也知道了。但A只知道月份。所以只剩下7月唯一对应。

因此是7月16日。

————————————————

这在PQ题里是最简单的一类了……那么我们看看最难的一类吧。


有两个数,a和b。a大于等于b,而且二者都是2到99之间的正整数。

现在我当着他俩的面,给他俩一人一个信封。P先生的信封,封皮上说“信里面是ab的和”;Q先生的信封,封皮上说“信里面是ab的积”。

然后两人各自打开信封,分别看到了里面的内容。

Q说,我不知道a和b是啥。

P说,我知道你不知道,我也不知道。

Q说,啊我现在知道了。

P说,啊那我也知道了。

请问a和b是啥?

38 2

这是一道老题,流传很久了。我之前给人讲逻辑学时用的一道趣味推理题跟这个很像,只是比它稍微复杂一点点而已,不过那个是扑克牌版本而已。这道题看起来好像有点怪,静下心来一想也不难,一般几分钟就能思考出来,也没有什么吵翻天的价值。所以我个人建议你在看答案之前先自己想一想。也许很快你就知道答案,懒得看我啰嗦了。

下面就是解答了。你真的要看吗?再提醒一遍,这道题真的不难哦,而且挺好玩的,值得一做哦。

这些人的姓比较长,我们就用字母代表了哈。A确定B不知道答案。B获得的信息是那一天的日期,所以比如说那一天是5月19日,B知道那天是19日以后就能知道那天是5月19日了对吧?A可以确定B不知道生日是哪天,也就是说A所知的月份里面不存在像18日、19日这种只出现过一次的日期,所以A听到的月份要么是7月,要么是8月。

B现在已知A听说的月份是7月或8月,就知道了那个日期,所以那个日期在7月或8月里是唯一的。如果是14日,那么B就无法根据这一天在7月或者8月而推知是哪一天了。所以这句话告诉我们,这一天肯定不是14日。

而A推理到这一天不是14日以后,就也能知道是哪一天。我们记得,A知道的是月份,如果A听到的月份是8月,那么她没办法推知对吧?因为她只知道不是8月14日,而无法确定是8月15日还是17日。但是事实是她已经确定了C的生日是哪一天,所以不能是8月啦,只能是7月。所以真相只有一个,7月16日啦。

3 0

我特意来吐槽一下“吵翻天”和“压轴题”这两个词。

折叠我吧。

3 0

小学程度奥数题吧,已看完题目马上就知道答案了,这有什么好吵的啊?

先排除18,19号也就是五六月,再排除14号,最后直接排除八月份

确定就是7月16日

1 0

茶水仙人_雨翔工程管理硕士 蒹葭汉化组组长

2015-04-15 11:51
支持者: 西伶飘雪

其实就是奥数的思路,先排除明显不同的18,19,这两个不满足事先都不知道这个条件;

然后逐步排除有相同的月份和天数

最后就剩下7月16日

1 0
支持者: l魅力女神l

这道题目有问题。。在现实生活中不可能成立,官方给出的解答跟前面几位大牛的思路一样。

前面两个条件做出的推理我没意见,最后日期缩小到7.16 8.15 8.17中的一个。

这时候问题来了,如果这个问题发生在现实生活中,那么A有可能不会说出第二句话,也就是题目的第三个条件。

因为B知道日期,所以可以从这三个日期中判断是哪一个,但A只知道月份,如果C的生日是在8.15和8.17中的一个的话,A是无法从“B知道C的日期”判断是8月的哪一天的。right?

0 0

7.16

由第一句可得:A得到月份但无法推出日期,且A确信此次月份中的每一个日子都无法让B推出特定日期。所以排除5、6月,因为5、6月有单独的18、19号。

由第二句可得:B得到日子之后无法推出日期,但B得出第一句结论后推出特定日期。所以排除14号,因为两个月都有14号,无法让B推出结果。

由第三句可得:A知道B得出结论后自己也能得出结论,所以排除8月,因为8月除了14号还有两个日子,无法让B得出结论。

0 0
有两个数,a和b。a大于等于b,而且二者都是2到99之间的正整数。

现在我当着他俩的面,给他俩一人一个信封。P先生的信封,封皮上说“信里面是ab的和”;Q先生的信封,封皮上说“信里面是ab的积”。

然后两人各自打开信封,分别看到了里面的内容。

Q说,我不知道a和b是啥。

P说,我知道你不知道,我也不知道。

Q说,啊我现在知道了。

P说,啊那我也知道了。

请问a和b是啥?

1.Q说不知道,可推出a+b<100;

2.P知道Q不知道,则a,b不同为质数,去掉质数和,则a+b={ 11, 17, 23, 27, 29, 35, 37, 41, 47, 51, 53, 57, 59, 65, 67, 71, 77, 79, 83, 89, 95, 97 }之一

3.将满足上述a+b的所有可能a,b求积。此时Q已经知道了,则可能情况中积相同的情况排除掉。a*b可能情况为(每行对应一个和的所有情况):

18 24 28
52
76 112
50 92 140 152 170 176 182
54 100 198 208
96 124 216 234 250 294 304
160 232 336
148 180 238 288 348 400 414 418
132 172 246 280 442 480 496 510
98 144 188 230 308 344 410 440 468 494 518 560 578 608 620 638 644 650
102 430 492 520 592 646 672 682 700
212 260 350 392 432 470 506 540 572 602 656 680 722 740 756 770 782 800 806 810 812
220 270 318 528 564 598 688 738 760 814 828 864 868
126 244 354 406 456 636 676 750 784 846 874 900 984 1000 1014 1026 1036 1044 1056
192 366 472 702 742 912 940 990 1012 1032 1080 1116 1120
268 330 448 558 610 708 754 880 918 954 1078 1104 1128 1150 1188 1204 1240 1248 1258
150 222 292 426 670 726 780 832 930 976 1062 1176 1210 1242 1272 1300 1372 1392 1410 1426 1440 1452 1462 1476 1480
228 438 504 568 748 804 960 1008 1098 1180 1288 1320 1378 1404 1488 1504 1530 1548 1558
162 316 390 462 600 666 730 852 966 1072 1216 1302 1342 1416 1512 1566 1590 1612 1632 1666 1680 1692 1710 1716 1720 1722
258 498 574 720 790 858 1168 1224 1278 1330 1474 1600 1638 1674 1708 1740 1770 1798 1824 1848 1870 1908 1924 1938 1960 1968 1974 1978 1980
186 364 534 774 850 924 996 1134 1200 1264 1386 1444 1500 1606 1656 1704 1750 1794 1836 1876 1914 1984 2016 2074 2100 2124 2146 2166 2184 2200 2214 2226 2236 2244 2250 2254 2256
372 460 546 712 792 1162 1296 1360 1422 1482 1540 1596 1752 1800 1846 1932 1972 2010 2080 2112 2142 2170 2196 2220 2242 2262 2280 2296 2310 2322 2332 2340 2346 2350 2352

4.此时P也知道了,则积的值必唯一。所以a*b=52,对应a+b=17

所以a=13, b=4;

-----------------------------------------------------------

筛选过程拿程序跑了一下,开始手算,太累了~

0 0

我确信已经发现了一个美妙的解题方法,可惜这里空白的地方太小,写不下……: )

0 0

Albert说的话的意思是:答案中的月份,单独日期(18日,19日)不存在。这样可以排除5月6月

bernard的话的意思是:剩下的8月和9月,答案中的日期,重复的日期(14日)不存在。这样,备选答案只能有3个了:7月16日 8月15日 8月17日

Albert再次说话的意思是:他知道的月份中,在上面的3个备选答案中有唯一日期,有两个日期的8月分被排除。所以是7月16日。

0 0

觉得有些回答不够清楚,所以有些认为是8.17,我来试试。

第一句:A确定B不知道,一下全部排除5,6月。A敢这么说,因为A知道这两个月100%不可能,否则B可能是知道的,有可能是18或19号。

第二句,B立马知道了,所以排除了7.14和8.14。因为剩下三个选项日子是单一的。

第三局,A通过第二句,立马知道了,所以是7月,因为8月还有两选项。


综上,读者能知道是7.16了。

0 0

十个日期用蓝色格子表示

第一句话表明生日绝不在5,6月,否则Bernate就知道生日了。排除所有的A格;

第二句话表明生日绝不在14日,否则Bernate还是不知道生日。排除了所有的B格。

第三句话表明生日只能是7月,否则Albert还是不知道生日,排除了2个C格;

结果为7.16

0 0

这个题目,可能是翻译有问题。在逻辑上存在问题。五、六月排除后,知道日子的人就能知道月份。14号排除。但是知道月份的人如何知道日子呢?日子可是有三个。

0 0

晕飞碟怎么办留恋某时空忘登机者

2015-04-17 02:44

正确答案:如果我有这么装B的朋友,直接友尽

0 0

因为A确定B不知道,所以排除5月和6月,因为如果B知道的是18或19,那他就知道答案了

因为B在知道A将5,6月排除后就知道了答案,说明该日期在7,8月中只出现一次,排除14号

因为A在知道B知道了之后也知道了,所以是7月,否则仍无法确定

所以生日是7.16

0 0

先列出来

5/15 5/16 5/19

6/17 6/18

7/14 7/16

8/14 8/15 /8/17

这里简称ABC

我不知道AB互相是否知道对方是否知道对方知道的东西

假如A知道B知道日B知道A知道月

那么首先A单通过月份显然无法判断

然后已知A知道B无法单纯通过日判断日期,那么可以排除5月和6月了,因为如果日是19或18就能直接得出结果

7/14 7/16

8/14 8/15 /8/17

此时的备选答案,这个是我们的视角,A的视角备选答案还是全部,但是B就不同了

7/14 7/16

8/14 8/15 /8/17

B和我们站在了视角上,然后B表示我得出答案了,嗯。。。如果是14日生日,那么仍然有两个备选答案

故排除14日后

7/16

8/15 8/17

然后A表示哦我也知道日期了

如果是8月,B知道了日期,对于A来讲依然有8/15和8/17两个日期,不可以判断出日期

那么只能是7/16

不过,前提中说了是单独告诉了1A和B信息,既然他们知道互相的信息,为什么不直接互通一下,也不需要那么多推理了,所以这个问题一定没那么简单...

那么继续

5/15 5/16 5/19

6/17 6/18

7/14 7/16

8/14 8/15 8/17

A表示自己不知道B也不知道,说明单知道这个月份是什么都解决不了的,显然这是废话

然后B表示我知道了已经,但是之前不知道。尽管还是没什么卵用,但是起码帮咱们排除了两个5/19和6/18。

然后A顿时灵光一闪表示老子也知道了,B的话可以排除5/19和6/18,所以能得到的唯一答案也只有6/17了。

但是最大问题来了,B是如何知道是6/17而不是8/17,难不成那句废话里还有信息?

其中一个疑问就是,A为何肯定B不知道是哪个日期?


0 0

这算奥数? 只是一道很老的逻辑推理题啊 7.16无误

0 0

我终于修成正果了,不容易不容易作为初中生表示作出同级奥数题深感欣慰

首先分析第一句话。可以得知B肯定得到的不是18或19这个日期,因为18、19是唯一的而A肯定B不知道,所以不是18、19.因为A在不知道B知道的日期的情况下得出了"B知道的日期不是18、19的结论”,所以A肯定知道的不是5、6月,如果知道的是5月他就不能肯定B知道的不是19号。所以月份是7、8.

第二句话:B在得知月份是7、8时就知道具体日期说明B知道的肯定是不是14,因为14重复了。所以日期可能是7.16 8.15(话说这不是日军宣布投降的日期么刚刚做作业时才做的还是南京大屠杀纪念日) 8.17。

第三句话:A在得知日期是上述的日期时就知道了日期,说明他知道的是7,因为如果是8时有两个可能性,所以A知道的是7

综上所述:日期是7月16日

其实不难转过弯来就好了

0 0

似乎不用多少文字描述啊 反正我想一下是716

0 0

1.首先A知道是7月 .A的第一句话.否定了5,6月. 因为,7,8月没有18号.19号.否则B句知道了.

2.B的话,否定了14号. 因为,7,8月都有14号,B无法知道确切日子..

3.7月只有14,16两天,排除了14号 .只有16号了.....

0 2

可是A知道日子也同样成立呀,A知道日子,B知道月份,A不知道生日是哪天,并且确定B也不知道,可以排除18、19两个日子,紧接着,B说之前不知道,现在知道了,因为A排除了18、19;仅剩6月有唯一项617,可以推断出月份是6月,因为其他月份不足以支撑让B知道生日。同样的原因,A也就能知道唯一项的答案是617……

所以我觉得答案是617……

716的求破解,上面的过程的问题在哪?

0 2

为什么他们对话那么繁琐呢?

A为什么确信B仅从日期无法推定是哪一天呢?他都知道B的信息了,还买什么关子?

0 3

真巧!最近也在讨论这个题!!

而且我认为“正确答案“是不严谨的,也就是这个题是不严谨的!


我的思路是,A不能排除5和6整个月份。


因为一开始,b手里就不可能是18 19两个数字。18 19只出现一次,如果他手里拿这两个数字,就知道答案了。


所以a所谓的”我确定b也不知道“可能有两种可能性

1,因为b没有说话,所以a知道b拿着的不是18 19两个数字。如果是按照这个思路,a拿着的也不是6.因为6.18已经被排除,6月只剩下一个6.17了。


如果a手里拿着6,那就宣布是6好了。可他没有。


换句话说,从这一步开始,分歧出现了。官方答案认为a应该排除5.6两个月。这种思虑却认为a只能排除6这一个月。

那么接下来呢?


但是,b听到这里却知道了答案。这说明他也知道了a手里的日期不是6.
而他手里的那个日期足够把5 7 8三个月份中的两个排除掉。由于14、15、16都在两个月中出现过,所以是17。

a则是见到b靠手里的日期和“不是6“就得出了正确答案,推测出他手中的数字不是共有的那几个,只能是17




0 0

试试奥数里面那种10个人聚会相互猜职业的题,这种简直不能更简单

0 0

连我都算出来的问题,那就不叫问题了。。。

查看更多

添加回答

登录 后回答问题,你也可以用以下帐号直接登录

相关问答

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 家长监控 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2018] 6282-492号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区