|
楼主 |
发表于 2009-9-23 18:01
|
显示全部楼层
解析64楼佳作,探析其中玄机。
先上图,再体会一下整个流转过程(可以设置迭代次数为1,以更好的体会其中的变化,并获取分析迭代公式的能力)
从上图可以看出:节拍0:A4-A3-A2-A1:0-0-0-0
节拍1:A4-A3-A2-A1:0-0-0-1
节拍2:A4-A3-A2-A1:0-0-1-0
节拍3:A4-A3-A2-A1:0-0-1-1
节拍4:A4-A3-A2-A1:0-1-0-0
节拍5:A4-A3-A2-A1:0-1-0-1
.............................................
所以,不注意的其中玄机的话很容易范逻辑错误...在 迭代次数 设置为1 的情况下,上面的一个节拍等同于 按一次 F9.
具体公式不讲,主要来分析其中的逻辑状态:
A1:每次按 F9 ,得到一个计算脉冲,就在 0 和 1之间转换一下,这个问题不大。
A2:每次按 F9 ,得到一个计算脉冲,如果在按F9之前 A1=1那么它在 0 和 1之间转换一下。
这句话没错,但并不能直接用来写公式!!!
A2在 0 和1 之间转换一下的逻辑判断为:A1=0,当A1=0 时,A2在 0 和 1 之间进行转换。这个是关键,需要吃透的。吃透了这点,就把这本分的关键把握住了。
可能你会在这里觉得胡剑犯浑了,呵呵。
这个问题在21楼强调过,不过没有具体事例不好理解其重要性:
注意:在A2得到脉冲的瞬间,所谓的A1的值是已经经过了这一轮的脉冲触发后得到的新值!!!
从这里我猜想 计算脉冲 是依照单元格挨个分配的,有时间先后顺序,而这个时间分配顺序是从上到下,从左到右的Z字型,并白一点说就是 A1,B1,C1...然后A2,B2,C2...
所以如果将 A2 0-1转换的逻辑变成 A1=1 时,如果确实按 F9 之前A1=1,但按F9以后由于A1先进行运算,A1已经从1变成0了,所以A2只能从过判断接受 计算脉冲时 A1=0 反过来判断按F9之间 A1=1。
这一点不仅在写 循环 时非常重要,在智能判决时也要特别注意。
明白了这一点,A3的判决条件也就不是A1=A2=1 而是 A1=A2=0了。所以这里逻辑本身还是简单的,难的是体会出 计算脉冲 的分配顺序 带来的影响。
======================================================================================
[ 本帖最后由 胡剑0227 于 2009-9-23 18:51 编辑 ] |
-
|