和吴昊一起玩推理 Round 5 —— 我不知道你不知道“哦!”我知道!你也知道了——让吴昊为你揭秘历史上配合最默契的两个人(M和N——源自死亡笔记)...

华中科技大学有一个著名的团队叫做联创,是培养IT狂人的摇篮,可惜,我到大四上学期方才醒悟,去联创宣讲会,发现,为时已晚,他们不招大一和大二的,悲 剧啊。不过,在笔试的时候有一个推理题我忘不了,应该说很经典吧,罗列如下:我们可以看到,即使是对方说“不知道”的时候,你不要灰心丧气!,当你连续得 知“对方不知道”而你又不知道的时候,你应该窃喜,你离开胜利不远了,你这个时候应该对他/她说“你也不知道”,这样传递的一个信息很有可能会让你成功地 探寻出事物的本源。为了进一步地阐明这一点,我举出两个例子:

  

  (图文无关,此为《L改变世界——最后的23天》中的女主角,当她发现L不能直着背的时候她笑了,恩,这一张,感觉很有爱,我很喜欢,就放在这里了……)

  为了看联创的那个问题,我先给出一个“简单一点”的问题,就是微软的一个面试题:

 

  我和一个NOI聊过这个问题,如下是对话:(吴昊对话王兴宇)

  吴昊/从头开始 18:57:28
求思路,微软的题好变态~
☆爆∑怒☆ 18:58:01
这里面没有什么文字游戏吗?
 
☆爆∑怒☆ 18:58:17
没有什么哲学相关的东西吗?
 
吴昊/从头开始 18:59:11

☆爆∑怒☆ 19:00:51
似乎要枚举一下,
 
吴昊/从头开始 19:01:59
等下聊吧
☆爆∑怒☆ 19:12:37
这题是手算还是编程?
 
吴昊/从头开始 19:13:14
您好,我现在有事不在,一会再和您联系。
吴昊/从头开始 20:01:22
手算,答案有些离谱

吴昊/从头开始 21:23:19
绝妙的推理!只是我不明白2+5为什么要舍去

吴昊/从头开始 21:23:47
第五题:3和4(可严格证明)
  设两个数为n1,n2,n1>=n2(不失一般性地),甲听到的数为n=n1+n2,乙听到的数为m=n1*n2
  证明n1=3,n2=4是唯一解
  证明:要证以上命题为真,不妨先证n=7
 1)必要性:
   i) n>5 是显然的,因为n<4不可能,n=4或者n=5甲都不可能回答不知道
   ii) n>6 因为如果n=6的话,那么甲虽然不知道(不确定2+4还是3+3)但是无论是2,4还是3,3乙都
不可能说不知道(m=8或者m=9的话乙说不知道是没有道理的)
   iii) n<8 因为如果n>=8的话,就可以将n分解成 n=4+x 和 n=6+(x-2),那么m可以是4x也可以是6
(x-2)而4x=6(x-2)的必要条件是x=6即n=10,那样n又可以分解成8+2,所以总之当n>=8时,n至少可以分解
成两种不同的合数之和,这样乙说不知道的时候,甲就没有理由马上说知道。
   以上证明了必要性
 2)充分性
   当n=7时,n可以分解成2+5或3+4
   显然2+5不符合题意,舍去,容易判断出3+4符合题意,m=12,证毕
  于是得到n=7 m=12 n1=3 n2=4是唯一解。

☆爆∑怒☆ 21:24:39
这个范围小很多,
 

☆爆∑怒☆ 21:24:45 
就容易得多~
 
吴昊/从头开始 21:25:34 
2+5为什么不行?
☆爆∑怒☆ 21:25:02 
我先想想~
 
☆爆∑怒☆ 21:27:45 
而且这里没有1,
 
☆爆∑怒☆ 21:28:25 
2和5都是素数,
 
☆爆∑怒☆ 21:29:16 
显然乙拿到10的话,
 
☆爆∑怒☆ 21:29:22 
只有2*5=10
 
吴昊/从头开始 21:30:35 
晕,没想到~
吴昊/从头开始 21:30:47 
微软的题蛮经典的!
☆爆∑怒☆ 21:30:19 
我看到微软的题就想到素数,可是1在范围内,
 
吴昊/从头开始 21:31:19 

吴昊/从头开始 21:31:34 
明天好激动啊!
☆爆∑怒☆ 21:31:07 
嗯嗯~

 

  以上,是稍微简单一点的问题,不过,甲同学和乙同学配合地已经是相当默契了。不过,还有更加默契的配合,那就是联创的这道笔试题:

  这个问题,我和另外一个华科ACM队内的NOI聊过,现在列出:(吴昊对话张拯)


  吴昊/从头开始 21:46:05
有16张牌,红桃A,Q,4,黑桃,J,8,4,2,7,3,草花K,Q,5,4,6,方块A,5

吴昊/从头开始 21:46:22
教授告诉P点数,告诉Q花色

吴昊/从头开始 21:46:38
P说我不知道,Q说我知道你不知道,P然后说我知道了,Q说我也知道了

吴昊/从头开始 21:46:49
问教授抽走了哪张牌?

吴昊/从头开始 21:47:12
教授分别问P和Q是哪张牌

ZIGZAG120% 21:47:25
第一眼的想法是

ZIGZAG120% 21:47:44
p知道的点数一定是出现次数>1的

吴昊/从头开始 21:48:03
对,没错,那么就有4,5,A,Q可以选择

吴昊/从头开始 21:48:27
我感觉是黑桃4,但是,对第二句话实在是搞不清楚

ZIGZAG120% 21:48:40
因为q说他知道p不知道,那也就是说q的花色中,至少包含两个满足第一个条件的牌

ZIGZAG120% 21:49:29
如果更强一点。。。。q的花色中所有的牌都应该是满足第一个条件的

吴昊/从头开始 21:49:37
不对呀,那么就有三种情况了

ZIGZAG120% 21:49:35
不过这个结论看题目出的严谨不

ZIGZAG120% 21:50:00
就是看q这句话是指预先知道p不知道还是怎么的……

吴昊/从头开始 21:50:33
哦,这样啊!

吴昊/从头开始 21:50:59
那这个题不就太勉强了!

ZIGZAG120% 21:52:04
然后就正常的做了……感觉应该是这样

吴昊/从头开始 21:52:23
我选黑4的理由是黑桃是唯一一个只有一张“P应该可能有的牌”的花色

ZIGZAG120% 21:53:03
唔,反正这种题目看对题意的理解吧……

 

 好了,最后,我们看看历史上配合地最默契的两个人,我认为这两个人是M(menlo)和N(near),死亡笔记中的两个人,他们两个通过默契的配合,在 牺牲其中一个人的情况下打败了曾经打败过L的基拉(夜神月)。这两个人的配合到底是怎么进行的,一直是一个迷。我个人目前的一个想法是:首先M利用黑道将 笔记夺回,估计杀掉N在SPK总部的若干人员,让N有理由告诉夜神月(因为这是真的)M和他是敌对的关系,也为之后埋下了铺垫。夜神月为了杀M将M逼向思 路,但是M利用自己的脱逃让夜神月相信他是一个贪生怕死之辈。有了这两场表演,M让月相信他是一个(1)贪生怕死的人(2)与N是敌对关系。M对N说: “我先在那里等你”意思是“我将牺牲自己的生命助你解开PUZZLE(拼图)”,那么,最后,M用自己的生命提示N考虑到了夜神月利用假笔记的可能性,以 上,奠定了夜神月的败局。

 

转载于:https://www.cnblogs.com/tuanzang/archive/2013/02/27/2935900.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值