Jump to 0 top | 1 navigation | 2 content | 3 extra information (sidebar) | 4 footer | 5 toolbar


Content

Blog»

让我们从游戏开始──点灯(4)

第三天 到目前为止,我们的进展都很顺利。不过我们的代码速度还不是很快,应该还有改进的余地。 昨天我们使用第一行生成了一个包含2^n个序列的list,我们认真看看,就会发现中间很多是对称的,比如n=3的时候100,001对称, 110,011对称。按照我们的算法,这些对称的的序列最后得到的开关桩状态也是对称的,那么我们把每得到一个解,就可以把对称的第一行组合去掉。那么同 理,如果第一行的某一个组合不是解,那么我们也可以把他去掉。这样不就减少了很多的循环次数啦。 首先判断list是否对称: def... »

让我们从游戏开始──点灯(3)

第二天 我们完成了一个求解的程序,但是我们还不能高兴,注意到first.py最后的注释没?因为运算量太大,连5×5都完成不了(或者很难完成),就别说更大的了。看来我们还要作一些大的改进才行。 让我们再琢磨琢磨我们的在理论分析中得到的一些信息。嗯~既然灯泡的状态之和“影响格”有关,那么是否意味着开关开启的顺序是无关的?看来我们有了一个突破口。一行一行的求解的可能性是有的,但是我们要怎么作呢?让我们先来分析一下。 我们从上往下考虑,如果先确定了第一行的开关状态,那么能影响这一行的就只有第二行;确定了... »

让我们从游戏开始──点灯(2)

第一天 对于这样的问题,我们最直接的想法就是穷举法:把所有的组合都试一次,有此来找到所有可能的解。 那么我们怎么的到这所有的组合呢?让我们来回想一下前面理论分析的内容。所有灯的状态都用0和1来表示,如果我们把这个4×4的二维数组组合成一个0、1序列,那么我们这个得到的0、1序列的是[0, 2^16)中所有的整数.我们用如下的语句得到这个整数序列: [x for x in xrange(2**16)]#由于数量比较大,我们没有使用range。两者之间的额区别google一下就可以了。 现在我们把这... »

让我们从游戏开始──点灯(1)

一次上班无聊,把同事的手机拿来打游戏,发现有个叫“点灯”的小游戏,开始不太在意,玩了一会儿以后发现非常有趣,想想很久没有写过程序了,便决定用这个来练练手。 关于游戏 点灯游戏规则非常简单,简单到什么人都可以一学就会。但是简单的规则并不意味着游戏也简单,这恰恰就是我所喜欢的,在简单中充满变化。因为规则简单,我在这里就不多说了。 [swf]http://games.wuhan.cc/flash/flash/flash_swf/3015.swf,1400,550,7,#FFFFFF[/swf] 这个是... »

[转贴]Why Functional P...

Why Functional Programming Matters函数式程序设计为什么至关重要作者: John Hughes翻译: CloudiDust [在网上也可以找到其他同学的翻译哦,我翻译完了才看到的,呵呵。]原文地址:http://www.md.chalmers.se/~rjmh/Papers/whyfp.html--------------------Why Functional Programming MattersJohn Hughes,Institutionen för Da... »

Albums»

CH小芯片1on1_Bad设计图

其他