编码规范:
1)避免使用a,b,abc等无意义的名称
2)使用驼峰命名法,如camelCase,userName等类型的命名方式;使用蛇形命名法,如snake_case,user_name等类型的命名方式
3)在运算符号前后添加空格
4)括号风格保持一致,如左括号放在行尾或左括号另起一行
5)一行代码限制在 80 或 120 个字符以内,避免横向滚动
6)
《数学之美》感想和体会
关于第四章节,在与斐波那契数列有关的内容中,提到了从“暴力求解”到“算法优化”的演进过程。这个数列可以解决生活中的许多问题,比如兔子繁殖问题,要解决这个问题把它转化成斐波那契数列问题就很好解决。比如可以采用递归的方法:fib(n): if n<2 return n else fib(n-1) + fib(n-2)。这个代码虽然直观,但在实际运行中递归调用产生了指数级的时间复杂度,所以时间复杂度不是很理想。其实也可以采用“动态规划”的思想,比如设立一个数组来缓存已计算的结果:fib_list[0], fib_list[1] = 0, 1
for i in range(2, n+1): fib_list[i] = fib_list[i-1] + fib_list[i-2]。这个迭代版本将时间复杂度从O(2^n) 降到了O(n),时间复杂度大幅降低。