python学习 2数学公式
2016-03-08 16:50
549 查看
递归
斐波那契数列: 第0项是0,第1项是1,从第2项开始,每一项都等于前两项之和
利用牛顿迭代法求平方根
求最大公约等数
汉诺塔
list map
求平方和
def fact(n): if n <= 1: return 1 else: return n * fact(n - 1)
斐波那契数列: 第0项是0,第1项是1,从第2项开始,每一项都等于前两项之和
def fib(n): i = 2 arr = [0, 1] while n > 2: arr.append(arr[i - 1] + arr[i - 2]) n -= 1 i += 1 return arr // MemoTable = {} def MemoizedFib(n): if n <= 2: return 1 if n in MemoTable: return MemoTable MemoTable = MemoizedFib(n-1) + MemoizedFib(n-2) return MemoTable
利用牛顿迭代法求平方根
def sqrt(x): def average(a, b): return (a + b) / 2.0 def is_good_enough(guess): return (abs((guess * guess) - x) < 0.001) def improve(guess): return average(guess, x / guess) def sqrt_iter(guess): if is_good_enough(guess): return guess else: return sqrt_iter(improve(guess)) return sqrt_iter(1.0)
求最大公约等数
def gcd(x, y): result = x if y != 0: result = gcd(y, x % y) return result
汉诺塔
def TowerOfHanoi(n, a, b, tmp): if n == 1: b.append(a.pop()) else: TowerOfHanoi(n-1, a, tmp, b) b.append(a.pop()) TowerOfHanoi(n-1, tmp, b, a) stack1 = [4,3,2,1] stack2 = [] stack3 = [] TowerOfHanoi(len(stack1), stack1, stack3, stack2)
list map
def map(func, lst): if lst == []: return [] else: return [func(lst[0])] + map(func, lst[1:]) def halveElements(lst): return map(lambda x: x / 2.0, lst) input = [2, 4, 6, 8, 10] output = halveElements(input)
求平方和
def summation(low, high, f, next): s = 0 x = low while x <= high: s = s + f(x) x = next(x) return s def sumsquares(low, high): return summation(low, high, lambda x: x**2, lambda x: x+1)
相关文章推荐
- Python -- 基本应用
- 提高python代码的执行效率
- python项目之 爬虫爬取煎蛋jandan的妹子图-下
- 机器学习系列(1)_逻辑回归初步
- 使用python获取传入目录下apk文件的所有图标
- python:16进制显示中文
- Python知识结构(包含与Android相关)
- 利用python进行数据分析-关于包的坑
- Python学习:定制类(实现一个类表现的很像一个list)
- python程序中yield用法。
- Python 10进制与任意进制之间相互转换(最大为62进制)
- python中一些常见的针对字符串的操作
- python 系列之 - 多进程
- 重装python idle打不开解决方案
- python __class__ type理解
- python __file__ 与argv[0]
- python (7)读取整个目录的所有文件夹并存入
- 机器学习系列(3)_逻辑回归应用之Kaggle泰坦尼克之灾
- Python正则表达式指南
- Python 主要模块介绍