树莓派入门

日前购置了最便宜的树莓派版本,树莓派zero w,板载WiFi和蓝牙,但是无屏幕操作一直没有配置成功,在确认完没有对电路造成伤害以后,我就把树莓派封存了起来,等待着,有时间了,可以拿出来玩儿,然而,现在就有时间了,当然最先玩儿它喽(手动滑稽)。
Continue reading

《复仇者联盟3:无限战争》

  漫威电影,我是从钢铁侠2开始看,随后又补了钢铁侠1、无敌浩克,接着就是顺着雷神、美队、复仇者联盟一路走下来,一点一点的看着漫威影业把电影宇宙构建完善,一点一点把支离破碎的故事通过一条主线穿起来,每一个主角都有他自己的故事,他们总会在合适的时间、合适的地点,亮出一块宇宙原石,而这宇宙原石,正是整个故事的线索,把这些线索串起来的人,正是萨诺斯。
Continue reading

没别的想法,就是想存一下雷总20年前的汇编代码

以前从来没黑过我雷总,但是,也没有说多关注他,只是比较看好小米手机的发展。今天,我正式宣布,成为雷粉,武大计算机系、两年修满四年学分、汇编语言满分通过、写过大大小小各种软件、参与编著《深入DOS编程》一书、投资了多个有潜力的企业、带着小米在安卓市场杀出一条血路,这tm就是神啊~
(PS:下面这个汇编代码,2185行) Continue reading

记在丁酉年末、戊戌年初

又是一年除夕夜,又是一年不眠时。
今天,回顾了记于丙申年末的博文,沉默……但还是继续今年的年终总结。

1月

1月按阴历还是丙申年,那时候,大概是在等上一次考研的成绩吧~不过,潜意识里觉得自己希望渺茫,或者,根本不想面对那次的结果,意料之中,情理之中的结果,一败涂地。 Continue reading

递归问题

递归的分析

实例:

汉罗塔(A,B,C三个点位,要求把A位完全移动到C位,只允许小的在大的上面)
汉罗塔

def move(n, a, b, c):
    if n ==1:
        print a, '-->', c,  a,'_',b,'_',c
        return
    move(n-1, a, c, b)
    print a, '-->', c, a,'_',b,'_',c
    move(n-1, b, a, c)
move(4, 'A', 'B', 'C')

分析:

  递归,算法编程中常见的一种方法,函数调用自身,一种十分优雅的解决问题的方法。主要构成分为基线条件和递归条件两种。
  基线条件(base case):规定函数自何时起不能再调用自身,防止出现死循环。
  递归条件(recursive case):函数调用自身
  在实例函数中,if条件引导的就是基线条件,当n=1时,函数终止调用自身,并跳过下面的步骤,直接返回调用该函数的那一层。
  汉罗塔的递归思想的源头在于,他的拆分逻辑,要想把上面N个从A移到C,要经过三步:
  1、把上面N-1个从A移到B
  2、把第N个从A移到C
  3、把B上的那N-1个从B移到C
  这个例子就完美的使用了这儿方法,函数所有的移动都是以a位移向c位,引用时只需要把移动前的位置值传给a变量,把移动后的位置值传给c变量,就可以做到完美的递归引用。再从其中嵌入基线条件,确定当只存在一个需要移位时,直接移动,并且,直接跳过下面的步骤返回调用函数的那一层。
(PS:其实写这个东西就是为了从例子开始,做反推联系,读懂代码并不意味着能够构造出相同思路的代码)


附录:

例子的整个流程
从上到下分别为1,2,3,4

4ABC{               //主要目的,把1234从A移到C
    3ACB{               //主要目的,把123从A移到B
        2ABC{               //主要目的,把12从A移到C
            1ACB{               //主要目的,把1从A移到B
                P-AB                    //把1,从A移到B
            }
                P-AC                //把2,从A移到C
            1BAC{               //主要目的,把1从B移到C
                P-BC                    //把1,从B移到C
            }
        }
                P-AB            //把3,从A移到B
        2CAB{               //主要目的,把12从C移到B
            1CBA{               //主要目的,把1从C移到A
                P-CA                    //把1,从C移到A
            }
                P-CB                //把2,从C移到B
            1ACB{               //主要目的,把1从A移到B
                P-AB                    //把1,从A移到B
            }
        }
    }
P-AC        //把4,从A移到C
    3BAC{               //主要目的,把123从B移到C
        2BCA{               //主要目的,把12从B移到A
            1BAC{               //主要目的,把1从B移到Chttps://youthliuxi.cn/wp-admin/media-upload.php?post_id=557&type=image&TB_iframe=1
                P-BC
            }
                P-BA                //把2,从B移到A
            1CBA{               //主要目的,把1从C移到A
                P-CA
            }
        }
                P-BC            //把3从B移到C
        2ABC{               //主要目的,把12从A移到C
            1ACB{               //主要目的,把1从A移到B
                P-AB
            }
                P-AC                //把2,从A移到C
            1BAC{               //主要目的,把1从B移到C
                P-BC
            }
        }
    }
}