- 博客(11)
- 收藏
- 关注
原创 八皇后问题——python解法
def safe(x): for i in range(len(x)-1): if (x[-1] == x[i]) or (abs(x[-1] - x[i]) == len(x)-1-i): return False return True def solution(n): def f(k): if k == 1: return [[x] for x in range(1, 9)] el
2020-06-02 10:35:10
1425
原创 数列——递归和迭代
对于数列,递归和迭代的联系非常紧密。 a0,a1,a2,...,an−1,ana_0,a_1,a_2,...,a_{n-1},a_na0,a1,a2,...,an−1,an 数列就是一串数字,数列来源于生活,有用的数列中蕴含着规则。 要完整描述一个数列,方法有二: 通项公式 an=f(n)a_n=f(n)an=f(n) 递推公式 其中通项公式是最一般的情况。由通项公式可以求得任意一...
2020-05-03 23:18:01
2848
原创 计算示例——递归与迭代
题目源于SICP。 第一题 python实现 # recursive process def f(n): if n < 3: return n else: return f(n-1) + 2*f(n-2) + 3*f(n-3) # iterative process def f(n): if n < 0: return n else: a, b, c = 0...
2020-05-01 22:05:06
427
原创 机器学习中的极大似然估计
最大似然估计(MLE) 考虑一组含有mmm个样本的数据集X={x(1),...,x(m)}\mathbb{X}=\{x^{(1)}, ..., x^{(m)}\}X={x(1),...,x(m)},独立的由未知的真实数据生成分布pdata(x)p_{data}(\mathbf{x})pdata(x)生成。 令pmodel(x;θ)p_{model}(\mathbf{x;\theta)}pmodel(x;θ)是一族由θ\thetaθ确定在相同空间上的概率分布。pmodel(x;θ)p_{model}(\m
2020-07-17 18:02:58
709
原创 费马检测——expmod
在SICP中,1.2.6 实例:素数检测部分定义了过程expmod计算一个数的幂对另一个数取模。这个过程中涉及到数论的基础,不是很容易懂。本文详细分析其中的细节。 要研究清楚这个函数的细节,首先要搞清楚何谓取模,取模的性质。 a对b取模,就是求a除以b的余数。可以总结出如下3个性质: 性质1 a MOD b=ra\,MOD\,b=raMODb=r na MOD b=nr MOD bna\,MOD\,b=nr\,MOD\,bnaMODb=nrMODb 证明 a=kb+ra=kb+ra=kb+r na=nkb+
2020-05-16 23:18:11
1089
原创 斐波那契数快速算法
定义 fib(n)={0if n=01if n=1fib(n−2)+fib(n−1)otherwisefib(n)=\left\{\begin{matrix} 0&if\;n=0 \\1&if \;n=1 \\fib(n-2)+fib(n-1)&otherwise \end{matrix}\right.fib(n)=⎩⎨⎧01fib(n−2)+fib(n−1)ifn=0ifn=1otherwise 一般计算方法 直接用递归实现 def fib(n): if n == 0:
2020-05-16 09:58:51
1166
1
原创 ackermann函数——递归习题
源于SICP中一道习题。 下面过程计算一个成为Ackermann函数的数学函数: (define (A x y) (cond ((= y 0) 0) ((= x 1) (* 2 y)) ((= y 1) 2) (else (A (- x 1) (A x (- y 1)))))) 下面各表达式的值是什么: (A 1 10) (A 2 4) ...
2020-04-30 10:12:33
1616
原创 python闭包——有状态信息的函数
在python中,函数是一等公民。 函数可以像其他类型的数据一样,作为参数传入另一个函数,函数也可以作为另一个函数的返回值。 同时函数定义语句和普通的赋值语句没有区别,创建一个函数对象并用一个名字引用之。因此函数定义语句可以出现在任何赋值语句可以存在的地方,包括在另一个函数中。 这就支持了嵌套函数的存在,在一个函数中定义另一个函数,二者分别称为外函数和内函数。这种范式可简单称为内外函数模型。 闭包...
2020-04-01 19:20:08
504
原创 解包赋值与打印矩阵
解包赋值 在python中,序列解包赋值是一种常用的赋值语法。 a, b, c = (1, 2, 3) x, y = [4, 5] print(a, b, c) print(x, y) 这种用法是很常见的。 其实,=号右侧不但可以使用常见的列表、元组等内置类型,更一般的对于所有的可迭代对象都是支持的,包括字典、文件、range、zip object、enumerate object、map ob...
2020-03-06 22:48:19
339
原创 windows下PYTHONPATH环境变量的设置
python程序架构 python的程序架构是基于多文件系统的,一个python程序包含一个顶层文件和0个或多个模块文件。除了标准库模块和安装的第三方库模块外,有时需要导入自己编写的模块文件。 自定义模块搜索路径 标准库模块和第三方库模块文件的导入,不需要特殊的设置,系统会从默认的模块搜索路径中找到模块文件。但当导入自己编写的模块时,且模块文件和顶层文件不在同一个路径下时,如何让计算机找到模块文件...
2020-02-05 21:13:26
7295
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅