摘要: 今天看了一篇博客,说的是导论的一道课后题以及博主的解答,感觉对逻辑思维的锻炼还是很有价值的,特意引用一下。这个题目的题意是这样的: 有N个人,分为好人和坏人两种,每次你可以挑两个人出来让他们互相指识彼此是好还是坏。好人一定说实话,坏人会乱说。现在你要从他们里面找出一个肯定是好人的。一共有三问:(1)证明若好人数目不超过N/2,则坏人们总可以通过故意捣乱,让你找不出正确答案。(2)证明若好人数大于N/2,存在一种方法可以通过floor(N/2)次判断使问题规模缩小到最多只有原来的一半。(3)证明若好人数大于N/2,可以用theta(N)次判断找出一个好人。 证明如下:记T=好人,F=坏人... 阅读全文
posted @ 2013-09-26 19:08 蚂蚁拉车 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 匿名方法允许我们指定一个内联委托的操作,为创建委托实例表达式的一部分。其可以对代码进行极度精简,当然可读性变得很差。下面看一个求平方根的例子。 List list = new List();list.Add(4);list.Add(5);list.Add(15);list.Add(20);list.Add(49);list.ForEach(delegate(int x) { Console.WriteLine(Math.Sqrt(x)); }); 乍眼一看,会发现其没有什么可读性。若既想精简,又要保持可读性怎么办呢,我们可以取一个折中的办法,即不再坚持“大括号单独占一行”的规则,但... 阅读全文
posted @ 2013-09-26 13:39 蚂蚁拉车 阅读(190) 评论(0) 推荐(0) 编辑