Python系列之六——拿什么拯救你?我的大脑

我一定是智障了,话不多说,上图上图~

就是这样10个选择题,你没有看错,我一定是个智障了~佩服不用穷举,也不用参考网上的大神思路,就能解出十道题的你!詹小白一开始想着把所有的题目翻译成规律,然后依次去推算,就像下面这样,结果发现脑子果然不够用了~

那就老老实实的穷举试试看吧,也就4的10次方(2的20次方,1048576种可能)而已嘛~这点计算量还是有的,嗯,我是说电脑……

各位老司机看一看,这是Python版写的~

 1#encoding=utf-8
 2#anser表示结果
 3#select表示每题中涉及的其他相关题目
 4anser_all = 0;    #所有可能的结果,一共4的10次方,也就是2的20次方 pow(2,20)
 5anser = [0,0,0,0,0,0,0,0,0,0];    #十道题的答案
 6while anser_all < pow(2,20):
 7   for i in range(10):
 8       anser[i] = ((anser_all >> (2*i)) & 0x03);
 9   anser_all = anser_all + 1;    #因为是从0开始,对应1234或者说ABCD
10   #题目2
11   select = [2,3,0,1]
12   if select[anser[1]] != anser[4]:
13       continue
14   #题目3
15   flag = 0;
16   select = [2,5,1,3]
17   for i in select:
18       if (anser[i] == anser[select[anser[2]]]) & (i != select[anser[2]]):
19           flag = 1;
20           break;
21   if flag == 1:
22       continue
23   #题目4
24   select = [[0,4],[1,6],[0,8],[5,9]]
25   if anser[select[anser[3]][0]] != anser[select[anser[3]][1]]:
26       continue
27   #题目5
28   select = [7,3,8,6]
29   if anser[select[anser[4]]] != anser[4]:
30       continue
31   #题目6
32   select = [[1,3],[0,5],[2,9],[4,8]]
33   if (anser[select[anser[5]][0]] != anser[7]) | (anser[select[anser[5]][1]] != anser[7]):
34       continue
35   #题目7
36   select = [2,1,0,3]
37   count = [anser.count(0),anser.count(1),anser.count(2),anser.count(3)]
38   if select[anser[6]] != count.index(min(count)):
39       continue
40   #题目8
41   select = [6,4,1,9]
42   if (anser[select[anser[7]]] == (anser[0]+1)) | (anser[select[anser[7]]] == (anser[0]-1)):
43       continue
44   #题目9
45   select = [5,9,1,8]
46   if anser[0] == anser[5]:
47       if anser[select[anser[8]]] == anser[4]:
48           continue
49   else:
50       if anser[select[anser[8]]] != anser[4]:
51           continue
52   #题目10
53   select = [3,2,4,1]
54   if select[anser[9]] != (max(count) - min(count)):
55       continue
56#显示最后结果
57   j=1
58   for i in anser:
59       print (str(j) + chr(ord('A')+i))
60       j = j + 1

运行起来也是没有问题的,一个简单的穷举而已~

> 1 2 3 4 5 6 7 8 9 10
> B C A C A C D A B A

RAN ER ,一个大写的然而!!之后不服气啊,然后去知乎一顿逛,发现某些大神是真的牛bi,划重点!!!评价这只是小学生阅读题,没难度~然而人家真的有资本这么说~

看下边重点~

确定条件1:从第三题可以得出,2、3、4、6题里面,有3题的答案是相同的。

确定条件2:从第10题可以得出,本试卷答案最多的字母,数字也不会超过5,且本试卷答案最少的字母,肯定小于2(为1或者0)

1、若3选A,仍旧不能确定246的选项,获得的信息很少;那我们不妨先换下一个假设;

2、若3选B,则234都选B,由2知5选D,由5知7选D,而第7题选D,与已知条件2相悖,错;

3、若3选C,则346都选C,由6知3、4、6、8、10都选C,则已经有5题选C,其他题目不能选C。此时看第五题,直接排除ABC选项,但如果选D,则第七题与条件2相悖。错;

4、若3选D,则236选D,由2知5选B,则4选B,由4知27相同,则7选D,与条件2相悖,错;

所以,第三题选A......所以刚才就不该绕的……下面246选项相同,继续套:

①若246为B,则5为D,7为D,与条件2相悖,错;

②若246选C,由2知5为A,由6知3、8、10均为A,只剩1、7、9未定。现在第八题:已知第八题为A,反过来说,第2、5、10均与第一题答案相邻。2选C,5选A,与AC相邻的,只有B了。则1、9为B,7选D,完美印证所有题干。

所以最终答案为:BCACACDABA

虽然有一定的运气成分,但是关键在于阅读抓取重要关键信息,这点是没错的~相信这也是我们警察叔叔考试时看重的能力吧~

原文发布于微信公众号 - 小小詹同学(xiaoxiaozhantongxue)

原文发表时间:2018-03-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一个会写诗的程序员的博客

编程范式 (Programming paradigm)

范,模范、典范也。范式即模式、方法。常见的编程范式有:函数式编程、程序编程、面向对象编程、指令式编程等。

3141
来自专栏desperate633

LintCode 买卖股票的最佳时机 II题目分析代码

假设有一个数组,它的第i个元素是一个给定的股票在第i天的价格。设计一个算法来找到最大的利润。你可以完成尽可能多的交易(多次买卖股票)。然而,你不能同时参与多个交...

591
来自专栏C语言及其他语言

初学C语言的学习计划

背景:很多同学在学习C语言的过程中,常常会遇到这样的问题,即“教材看完了,知识点也懂,但写不出来程序”,这段时间,我们通过长期与有多年C语言研究经验的教授、教师...

3604
来自专栏斑斓

迪米特法则与重构

在面向对象设计的世界里,有一个寻常却又常常为人所忽略的原则——“迪米特(Law of Demeter)”法则。这个原则认为,任何一个对象或者方法,它应该只能调用...

1096
来自专栏tkokof 的技术,小趣及杂念

Sweet Snippet 之 Bounce Setting

  又是一篇Sweet Snippet,自己看来都觉得过小,不足以成篇,不过自觉有些趣味,也就随便记一记了,权当自娱自乐 :)

561
来自专栏域名资讯

3杂域名22k.com以六位数被售出

随着短域名资源的稀缺,像三杂这类短域名自然成为了抢手货,未来的发展潜力不容小觑,是投资的最佳品种之一。借字符简单、建站不受限制、简洁易记等优势,在米...

2320
来自专栏怀英的自我修炼

Java漫谈1

对于接触编程的人来说,Java更多地代表了一门编程语言。 Java是一门通用的计算机编程语言,它是并行的,基于类的,面向对象的,可以一次编写到处运行的一门语言。...

37714
来自专栏数据结构与算法

1095 火星人

1095 火星人 2004年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 D...

35610
来自专栏swag code

荷兰国旗-快排应用

”荷兰国旗难题“是计算机科学中的一个程序难题,它是由Edsger Dijkstra提出的。荷兰国旗是由红、白、蓝三色组成的。

932
来自专栏数据结构与算法

生理周期POJ 1006

Description 人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会...

2747

扫码关注云+社区

领取腾讯云代金券