KeyFansClub
watashia - 2006/5/28 16:19:00
因为: 出这种题就是为了难倒解题者。
所以: 每道题应该递增解整套题的难度。
~~~~~~~~~
作为前提的大前提其实只是推测啊,不能作为逻辑推理的前提啊 ==
这样推理出来的结果也只能是推测的结果。
[hr]
不是你改就能行的啊
除非你是出题者,或者出题者证明确实是这样,这个才能作为无误的前提啊。--b
craft108 - 2006/5/28 16:25:00
…………我晕死了,居然可以写出这么多Bug我真佩服我自己-_-||||
3.和5.感觉是重复的,不过考虑到有关数量和顺序的问题5.还是必须的
编程结果正确答案只有一个:1c,2d,3e,4b,5e,6e,7d,8c,9b,10a.
现在EVE的服务器维护完了偶要玩去了,晚上再来看看……
03534 - 2006/5/28 16:28:00
企图画图解答...
结果思路越来越乱……(图像蜘蛛网一样...)
失败告终.... orz||||
另,
1楼的是个强人……
纯人脑计算+手解答…………? -v-b
第三和第一貌似一开始就能排除掉b选项?
Prz - 2006/5/28 16:29:00
但是很可惜这套题目中有与题目次序有关的题目(连续两题、第一题这样的条件),因此无论是在“多解”还是“单解”的情况下,都是能增加题目的难度的,因为3和5并不是完全相同的选项,也不是完全相同的位置 |
赫赫,没有关系的,你要从整套题的"定义域"方面来考虑就明白了。
一下子我跟你解释不清楚,但是你如果把我的程序下过去自己玩玩(自己写也可),就会很明了:
首先你改变一下其他的问题(比如把6题的m=0那个条件去掉), 使得整套题有多个解;
然你就会发现: 不论你怎么改变3或者5的答案序列号,或者怎么调换3或者5的顺序,最后的答案的数量应该都是一样的!
当然,我并没有否认如果有多个解第5题不会增加整套题的难度;
我的意思是,没有最大化的增加题的难度,也就是说,完全有可能用一道其他的问题来减少正解的数量,使得题目更难!
但是,当题目只有一个解得时候,第5题就做到了最大化的增加题的难度,因为这种情况下用任何一道问题带来的效果都是一样的。
Prz - 2006/5/28 16:33:00
以下引用watashia在2006-5-28 16:19:13的发言: 因为: 出这种题就是为了难倒解题者。 所以: 每道题应该递增解整套题的难度。 ~~~~~~~~~ 作为前提的大前提其实只是推测啊,不能作为逻辑推理的前提啊 == 这样推理出来的结果也只能是推测的结果。 |
那好,我就改一下,大前提不是推测,而是"题"这个词的定义。
定义: 出题 就是 为了最大程度的考验做题者。
行了吧。 -v-
粘土火星 - 2006/5/28 16:55:00
机器解决王道,顺带问一下misha姐这程序跑出来花多长时间=v=b
机器没有DELPHI……orz|||
wdx04 - 2006/5/28 16:59:00
正确答案:
1c,2d,3e,4b,5e,6e,7d,8c,9b,10a。
我是用笔算穷举出只有唯一解的。由于我比较倒霉所以分析到倒数第二种情况才得解。
我的解法具体来说是从7、8、9三题入手(不一定是最好的):
根据7很容易得到三种可能的情况:
<一>7任意、8e、9c[注意:虽然7=a~e都可能得到8e,但并不能因此而排除8e]
<二>7c、8a、9d
<三>7d、8c、9b
对<一>,我首先推出了1、2、4的答案不可能是元音,加上9c共4个辅音,因此其余3、5、6、7、10必须全是元音,但是推出矛盾,所以排除<一>。
对<二>,因为只有两个元音,所以从4入手。4b和4c都比较容易排除。
对<三>,从3入手,3e能推出正确答案,3c和3d都推出矛盾,其中3d的推理比较麻烦。
shellingford - 2006/5/28 18:22:00
以下引用Prz在2006-5-28 16:29:04的发言:
赫赫,没有关系的,你要从整套题的"定义域"方面来考虑就明白了。
一下子我跟你解释不清楚,但是你如果把我的程序下过去自己玩玩(自己写也可),就会很明了:
首先你改变一下其他的问题(比如把6题的m=0那个条件去掉), 使得整套题有多个解; 然你就会发现: 不论你怎么改变3或者5的答案序列号,或者怎么调换3或者5的顺序,最后的答案的数量应该都是一样的!
当然,我并没有否认如果有多个解第5题不会增加整套题的难度; 我的意思是,没有最大化的增加题的难度,也就是说,完全有可能用一道其他的问题来减少正解的数量,使得题目更难!
但是,当题目只有一个解得时候,第5题就做到了最大化的增加题的难度,因为这种情况下用任何一道问题带来的效果都是一样的。 |
呵呵,你这种评价复杂度的方法是错的哦。事实上无论如何,单一解答的题目复杂度总要高过多重答案的复杂度。多重答案题目的复杂度的边际值(边际值:每加上一个问题之后对问题集的复杂度的增加量)是不大于(小于等于)单一答案的题目复杂度的边际值的(因为只有一种推导路径,穷举的时间复杂度总要增加)。也就是说“无论针对哪个问题,给单一解带来的复杂度总要大于多重解”。
所以用“当题目只有一个解的时候,第5题就做到了最大化的增加题的难度”来得到本题只有一个解,这本身是不能成立的。
粘土火星 - 2006/5/28 18:35:00
3 4 5 2 5 5 4 3 2 1 1.15
C:\TP\BIN> |
[STRIKE]orz…………找来了TP,写个最朴素的枚举,结果用7秒多||||||[/STRIKE]
更正:应该是1.15……………………
7秒多是备选答案为abcdef的情形orz
那么在下盗版misha姐的(谁能给我这orz的枚举逻辑提提意见|||)
[wrap=
程序在这]program question10;
var Answer,Enumlist:array[1..10] of integer;
i:integer;
tStart,tEnd:longint;
function chkQue1:boolean;
var Result:boolean;
i,j:integer;
begin
result:=false;
j:= 11;
For i:= 1 to 10 do
if Answer
= 2 then
begin
j:= i;
break;
end;
if Answer[1]+1 = j then
Result:= true;
chkQue1:=Result;
end;
function chkQue2:boolean;
var Result:boolean;
i,j:integer;
begin
result:=false;
for i:= 1 to 9 do
if Answer = Answer[i+1] then
if Answer[2]+1 = i
then Result:= true
else
begin
Result:= false;
break;
end;
chkQue2:=Result;
end;
function chkQue3:boolean;
var Result:boolean;
begin
result:=false;
case Answer[3] of
1: if Answer[3] = Answer[1] then Result:= True;
2: if Answer[3] = Answer[2] then Result:= True;
3: if Answer[3] = Answer[4] then Result:= True;
4: if Answer[3] = Answer[7] then Result:= True;
5: if Answer[3] = Answer[6] then Result:= True;
end;
chkQue3:=Result;
end;
function chkQue4:boolean;
var Result:boolean;
i,j:integer;
begin
result:=false;
j:= 0;
For i:= 1 to 10 do
if Answer = 1 then
Inc(j);
if j+1 = Answer[4] then
Result:= true;
chkQue4:=Result;
end;
function chkQue5:boolean;
var Result:boolean;
i,j:integer;
begin
result:=false;
if Answer[5] = Answer[5+6-Answer[5]] then
Result:=True;
chkQue5:=Result;
end;
function chkQue6:boolean;
var Result:boolean;
i,j,k,l,m:integer;
begin
result:=false;
j:=0;
For i:= 1 to 10 do
if Answer = 1 then
Inc(j);
m:= 0;
for l:= 2 to 5 do
begin
k:= 0;
For i:= 1 to 10 do
if Answer = l then
Inc(k);
if (j = k) then
if (Answer[6] = l-1) then
BEGIN
Result:= True;
Break;
END
else m:= 1;
end;
if (Result = False) and (m = 0) and (Answer[6] = 5) then
Result:= True;
chkQue6:=Result;
end;
function chkQue7:boolean;
var Result:boolean;
i,j:integer;
begin
result:=false;
j:= Abs(Answer[7] - Answer[8]);
if (5 - j) = Answer[7] then
Result:= True;
chkQue7:=Result;
end;
function chkQue8:boolean;
var Result:boolean;
i,j:integer;
begin
result:=false;
j:= 0;
For i:= 1 to 10 do
if (Answer = 1) or (Answer = 5) then
Inc(j);
if Answer[8] + 1 = j then
Result:= True;
chkQue8:=Result;
end;
function chkQue9:boolean;
var Result:boolean;
i,j:integer;
begin
result:=false;
j:= 0;
For i:= 1 to 10 do
if (Answer = 1) or (Answer = 5) then
Inc(j);
j:= 10 - j;
case Answer[9] of
1: if (j = 2) or (j = 3) or (j = 5) or (j = 7) then
Result:= True;
2: if (j = 1) or (j = 2) or (j = 6) then
Result:= True;
3: if (j = 1) or (j = 4) or (j = 9) then
Result:= True;
4: if (j = 1) or (j = 8) then
Result:= True;
5: if (j = 0) or (j = 5) or (j = 10) then
Result:= True;
end;
chkQue9:=Result;
end;
function chkQue10:boolean;
begin
chkQue10:=true;
end;
begin
tStart:=MemL[$40:$6c];
for Enumlist[1]:=1 to 5 do
begin
Answer[1]:=Enumlist[1];
for Enumlist[2]:=1 to 5 do
begin
Answer[2]:=Enumlist[2];
for Enumlist[3]:=1 to 5 do
begin
Answer[3]:=Enumlist[3];
for Enumlist[4]:=1 to 5 do
begin
Answer[4]:=Enumlist[4];
for Enumlist[5]:=1 to 5 do
begin
Answer[5]:=Enumlist[5];
for Enumlist[6]:=1 to 5 do
begin
Answer[6]:=Enumlist[6];
for Enumlist[7]:=1 to 5 do
begin
Answer[7]:=Enumlist[7];
for Enumlist[8]:=1 to 5 do
begin
Answer[8]:=Enumlist[8];
for Enumlist[9]:=1 to 5 do
begin
Answer[9]:=Enumlist[9];
for Enumlist[10]:=1 to 5 do
begin
Answer[10]:=Enumlist[10];
if (chkQue1) AND (chkQue2) AND (chkQue3) AND (chkQue4) AND (chkQue5)
AND (chkQue6) AND (chkQue7) AND (chkQue8) AND (chkQue9) then
begin
for i:=1 to 10 do
write(Answer,' '); writeln;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
tEnd:=meml[$40:$6c];
writeln((tEnd-tStart)/18.2:2:2);
end.
[/wrap]
LOVEHINA-AVC - 2006/5/28 18:38:00
这种题目就应该叫计算机来做
shellingford - 2006/5/28 18:46:00
既然已经在这么后面的页了,那我剧透一下也没关系了吧。
个人认为以问题10入手是最快的方法。因为10是一个没有任何信息的问题,所以在前面的9个问题里面必定隐藏着确定10的答案方法。那么是什么方法呢?就是在前面的某个题目里面出现了使得问题10“必须”是某个值的题目。最明显的问题就是4,因为4本身不可能选a(选了a还敢说选a的是0个?我砍砍砍~),那么就意味着整个题目体系中一定有一个选a的题目,这就是一个限制方法!环顾一下其它的题目,只可能将10的答案限制在元音或者辅音,而不能确定是哪一个,这和出现10号问题的初衷(见我前面的分析)相悖。
当然,你可以说5也可以啊,强制性将10定为和它一样的答案。虽然这样相当勉强(若5限定为答案a的话,就要进行一系列6789的答案安排),不过这样没关系啦,反正10的答案还是a~~~~~~
shellingford - 2006/5/28 18:54:00
然后再来考虑4的答案。如果你刚才和我最开始一样单神经没有考虑有5的情况,那么恭喜你,不用烦恼了,4就是b。除此之外呢?有没有可能就是用5来定的呢?考虑一下5来定义10号问题答案的情况。此时6不能选e了(5不能有两个答案嘛),那么就有一个和a一样多的字母。我们已经知道a有2个或者以上了。那么此时a就可能是2个或者3个(不可能是4个),也就是说4选c或者d。由于6不是e,那么3也不是e,所以问题3和另外某一个问题会共用一个不是a或者e的答案。由于7、8、9共同限定9不能为e,7不能为e,另外1不是e,所以e不具有3个或者以上的可能,而只可能在8和9及2和7之间产生。但是e只有2个或者以下这就说明元音不可能有6个,即8不是e,从而由7、8共同决定8只能是a或者c,从而将e的可能性限定在问题2上面。
在a是2个的情况下,元音只能有2+0个,而这意味着8要选a,和5a 10a矛盾。在a是3个的情况下,元音只能有3+1个,这意味着8是选c的,2选e,从而6和7都是d,这样一来,出现了a的个数和e的个数相等的矛盾。
所以,4的答案就是b,并且用来决定了10a,这个也是一定的。
忧郁の丸子 - 2006/5/28 19:14:00
前面听人说,这是阿尔伯特 爱因斯坦出的题目!!!!!!!!!!!!!!
- -|||
-------------------------------------------
相信只有唯一的解。。。
watashia - 2006/5/28 19:16:00
以下引用忧郁の丸子在2006-5-28 19:14:40的发言: 前面听人说,这是阿尔伯特 爱因斯坦出的题目!!!!!!!!!!!!!!
|
听他们胡说,就算有人说是上帝出的题也不奇怪。
shellingford - 2006/5/28 19:19:00
wdx04有一点比较可惜的就是在分析7、8、9的时候走了弯路,就是那句:“[注意:虽然7=a~e都可能得到8e,但并不能因此而排除8e]”
先看看由4b能得到什么。4b意味着所有的其它题目都不能是a,那么元音就只能集中在e上面。由于问题1不能是e,所以这个问题是辅音。
那么如果8e的话,有什么问题呢?8e不仅意味着7就可以是任意值了,而且9的答案肯定是辅音(9e意味着有5个或者以上的辅音,和8e是冲突的),此外,也导致必须要有其它问题来限制7的答案。那么按照10a、4b,只有可能用3和5来定7。因此3、5之中的一个和7都要变成d。此时辅音已经有5个或者以上了(1、4、3或者5、7、9),和8e相悖。
所以8e是不成立的。
另外4b还能直接排除8a,所以很快就得到8c的结论,呵呵~~~~~`
shellingford - 2006/5/28 19:34:00
得到8c之后,9b和7d就很直接了。接下来就是确定本问题集的前半部分(1、2、3、5、6)。由于此时知道e有3个(4个元音却只有一个a),而后半部分我们得到的答案是(4b、7d、8c、9b、10a)没有一个e,所以前半部分的5个问题里面有3个e。最简单的方法就是让3、5、6都是e了(而且居然是正确答案……Orz)。如果你和我一样凭直觉办事情,那么恭喜你,你马上就得到正确答案了。那么由于1不能是e,可不可能2是e呢?2e意味着6和7的答案是一样的,但6d意味着a和e的个数一样(可能么?呵呵)……
所以,答案华丽地登场了~~~~~~~~由于2的题干说明6、7是“唯一的”连续答案题目,所以1、2选什么就很简单了~~~
感谢各位观看,推理就此谢幕~~~~~~~~~
wdx04 - 2006/5/28 19:41:00
以下引用shellingford在2006-5-28 18:46:23的发言: 既然已经在这么后面的页了,那我剧透一下也没关系了吧。 个人认为以问题10入手是最快的方法。因为10是一个没有任何信息的问题,所以在前面的9个问题里面必定隐藏着确定10的答案方法。那么是什么方法呢?就是在前面的某个题目里面出现了使得问题10“必须”是某个值的题目。最明显的问题就是4,因为4本身不可能选a(选了a还敢说选a的是0个?我砍砍砍~),那么就意味着整个题目体系中一定有一个选a的题目,这就是一个限制方法!环顾一下其它的题目,只可能将10的答案限制在元音或者辅音,而不能确定是哪一个,这和出现10号问题的初衷(见我前面的分析)相悖。 当然,你可以说5也可以啊,强制性将10定为和它一样的答案。虽然这样相当勉强(若5限定为答案a的话,就要进行一系列6789的答案安排),不过这样没关系啦,反正10的答案还是a~~~~~~ |
如果已知只有唯一解,任意的9个题目都可以唯一确定最后一个,所以说你一切推理的基础就是错误的。
实际上这个题目很容易产生变种,稍微改变一下其它个别题目,就可以使第10题答案不为a,前面编程求解的朋友可以试一试。
QuinMantha - 2006/5/28 19:48:00
看了题目后15秒后决定去玩游戏算了。。。(殴)
比起逻辑思维,感觉这个更考验耐心 -v-bb (围殴)
shellingford - 2006/5/28 20:17:00
以下引用wdx04在2006-5-28 19:41:51的发言:
如果已知只有唯一解,任意的9个题目都可以唯一确定最后一个,所以说你一切推理的基础就是错误的。 实际上这个题目很容易产生变种,稍微改变一下其它个别题目,就可以使第10题答案不为a,前面编程求解的朋友可以试一试。
|
不错,任何9个题目都可以唯一确定一个第10题,但其最终将答案缩小到一个的肯定是某一道,而其它题目都没有这样的能力。
另外,如果稍微改变一下其它题目,更有可能是无解……
wdx04 - 2006/5/28 20:49:00
逻辑推理是不能用“可能”这样的字眼的。
考虑一种最简单的情况,三个问题,两个选项:
1、答案是a的问题个数是:
a.0 b.1
2、本题的答案和下一题的答案:
a、不一样 b、一样
3、本题的答案是:
a、(a) b、(b)
这里第1题限定了至少有一个题选a而且它自身不能选a,第3题“没有提供任何信息”。
那么请问shellingford,第3题的答案是a吗?
shellingford - 2006/5/28 20:51:00
以下引用wdx04在2006-5-28 20:49:01的发言: 逻辑推理是不能用“可能”这样的字眼的。 考虑一种最简单的情况,三个问题,两个选项: 1、答案是a的问题个数是: a.0 b.1 2、本题的答案和下一题的答案: a、不一样 b、一样 3、本题的答案是: a、(a) b、(b) 这里第1题限定了至少有一个题选a而且它自身不能选a,第3题“没有提供任何信息”。 那么请问shellingford,第3题的答案是a吗? |
这里不同的是,2和3也是直接相关的,“是可以直接确定3的答案的题目”就像我不光考虑了4和10相关,也考虑了5和10相关的情况并详细排除了。
wdx04 - 2006/5/28 21:21:00
这还是说明本题是一个很巧合的题目,由多个条件间接确定一个没有信息的问题还有很多方法(比如说多个条件的交集唯一),不过这里没有出现而已。当然,我解题的时候并没有发现这一点,而且在不知道解是否唯一的情况下,发现了这一点也没用。
另外对44楼的“先看看由4b能得到什么”,这个4b是你从10a出发得到的,我从789出发不可能这么快得到4b。
shellingford - 2006/5/28 21:30:00
以下引用wdx04在2006-5-28 21:21:19的发言: 这还是说明本题是一个很巧合的题目,由多个条件间接确定一个没有信息的问题还有很多方法(比如说多个条件的交集唯一),不过这里没有出现而已。当然,我解题的时候并没有发现这一点,而且在不知道解是否唯一的情况下,发现了这一点也没用。 另外对44楼的“先看看由4b能得到什么”,这个4b是你从10a出发得到的,我从789出发不可能这么快得到4b。
|
嗯,我也认为这个题目是一个巧合,在没有多少条件组(比如那个经典的房子颜色、位置和国籍类的问题就具有颜色、位置、国籍等多个条件组)的情况下产生有且仅有一个解的结果。因为如果在元音或者相同答案或者连续答案方面再多加条件,可能就会出现你说的“多个条件的交集唯一”。这里没有出现的原因仅仅是每个条件组的条件数不够而已,即通过任何一个其它的条件组都没有一个能决定10号问题的问题出现。
那个弯路的意思也正如你所说,需要用4b才能绕开。
Prz - 2006/5/29 2:41:00
以下引用shellingford在2006-5-28 18:22:24的发言:
呵呵,你这种评价复杂度的方法是错的哦。事实上无论如何,单一解答的题目复杂度总要高过多重答案的复杂度。多重答案题目的复杂度的边际值(边际值:每加上一个问题之后对问题集的复杂度的增加量)是不大于(小于等于)单一答案的题目复杂度的边际值的(因为只有一种推导路径,穷举的时间复杂度总要增加)。也就是说“无论针对哪个问题,给单一解带来的复杂度总要大于多重解”。
|
你还是没有理解我的意思。
你不能用"单一解"和"多解"这种二进制的思考方式。要知道"多解"本身就是多种情况。
把你的最后一句话换成这样就正确了:
“无论针对哪个问题,减少解数量带来的复杂度总要大于保持解数量”。
|
即便是最终问题集有多个解,只要每一道问题做到了减少解的数量,那么出题者就没有浪费资源。
比如一个N道问题的问题集,现有M个解. (M>1)
那么我可以增加一道问题A,使得这个问题集还是有M个解;
或者我可以增加一道问题B, 使得这个问题集有M-x个解;(1<= x < M)
那么明显的问题B增加难度的效率要比A高。
因此如果要使得问题尽可能的变难,就应该使用问题B。
但是一个N道问题的问题集,现有1个解.
那么不论我增加一道再怎么难的问题,只能使得这个问题集还是有1个解;
因此这种情况下,使用一道相同的题型或者不同的题型增加难度的效率是一样的。
因此,就算使用一道相同的题型,出题者的目的也达到了。