
Python
davelam1991
用代码书写青春。
展开
-
Python之easy_install安装出错
环境:mac os x 10.9.2python版本:2.7.5easy_install对于Python相当于apt之于Ubuntu,安装其他库十分方便,但是最近安装PIL(Python Imaging Library),这个强大的图形库时竟然出错了,十分抓狂。错误信息如下:clang: error: unknown argument: '-mno-fused-madd' [-Wu原创 2014-03-27 22:14:54 · 9499 阅读 · 0 评论 -
Centos下安装python mysqldb
环境:centos6.6python版本:2.6mysql版本:5.1.73需要安装的mysqldb版本:1.2.5下载完mysqldb后,进入其目录,运行python setup.py install会报出一大堆错,原因是很多依赖库都没有安装,我们需要在这之前运行:yum install gcc python-devel mysql-devel -y 然后再运行setup就没问题了。原创 2015-04-09 23:31:52 · 4115 阅读 · 0 评论 -
Python获取本机所有网卡ip,掩码和广播地址
搜了一天,竟然没找到一段合适的代码来获取机器中所有网卡的ip,掩码和广播地址,大部分都是用socket,但是socket通常返回的要不就是内网地址,要不就是公网地址,不能够找到所有地址,真的太忧桑了,决定自己通过ifconfig或ipconfig的返回信息,一步步地过滤了。这次的代码主要用到了正则表达式和subprocess模块,而且为了兼容所有平台(win,linux和mac),也用到了platf原创 2015-03-27 20:34:34 · 17206 阅读 · 12 评论 -
网络流算法Dinic的Python实现
在上一篇我们提到了网络流算法Push-relabel,那是90年代提出的算法,算是比较新的,而现在要说的Dinic算法则是由以色列人Dinitz在冷战时期,即60-70年代提出的算法变种而来的,其算法复杂度为O(mn^2)。Dinic算法主要思想也是基于FF算法的,改进的地方也是减少寻找增广路径的迭代次数。此处Dinitz大师引用了一个非常聪明的数据结构,Layer Network,分层网络,原创 2015-01-02 16:21:51 · 3457 阅读 · 0 评论 -
Python递归求矩阵的行列式
为了感受Python的列表生成器的威力,写了个简单的程序——递归求矩阵的行列式,效率可能没numpy高,欢迎各位指正。def det(m): if len(m) <= 0: return None if len(m) == 1: return m[0][0] else: s = 0 for i in ran原创 2015-01-01 14:54:13 · 4989 阅读 · 0 评论 -
Simplex单纯性算法的Python实现
单纯性算法是解决线性规划的经典方法,上世纪50年代就提出了,其基本思想是在可行域内沿着边遍历所有的顶点,找出最优值,即为算法的最优值。算法的执行过程如下:求出初始基向量构建单纯性表格在所有非基向量对应的c中,找出一个最小的ci,若该ci大于0,则退出,输出obj,否则将ai入基利用基向量组线性表示ai,得到该线性表示的系数向量Λ对于Λ中所有大于0的分量,求出minmj=1bjΛj对原创 2014-12-19 22:28:16 · 5644 阅读 · 6 评论 -
网络流算法Push-relabel的Python实现
网络流的背景我就不多说了,就是在一个有向图中找出最大的流量,有意思的是,该问题的对偶问题为最小割,找到一种切分,使得图的两边的流通量最小,而且通常对偶问题是原问题的一个下界,但最小割正好等于最大流,即切割的边就是最大流中各个path饱和边的一个组合。说得可能比较含糊,这里想要了解清楚还是查阅相关资料吧。最大流最原始最经典的解法就是FF算法,算法复杂度为O(mC),C为边的容量的总和,m为边数。原创 2015-01-02 15:44:44 · 4219 阅读 · 3 评论 -
基于Huffman编码的压缩软件的Python实现
哈夫曼编码是利⽤用贪⼼心算法进⾏行⽂文本压缩的算法,其算法思想是⾸首先统计⽂文件中各字符出现的次数, 保存到数组中,然后将各字符按照次数升序排序,挑选次数最⼩小的两个元素进⾏行连结形成⼦子树,⼦子 树的次数等于两节点的次数之和,接着把两个元素从数组删除,将⼦子树放⼊入数组,重新排序,重复 以上步骤。为了解压,在压缩时⾸首先往⽂文件中填⼊入huffman编码的映射表的⻓长度,该表的序列化字符串,编码原创 2014-11-21 21:55:27 · 7011 阅读 · 0 评论 -
优化后的Levensthein distance算法实现
在上一篇文章Levenshtein distance算法实现中,笔者已经讲解了一般最小编辑距离的算法。该算法采用动态规划,时间复杂度是O(m*n),m,n分别为两个字符串的长度,而空间复杂度也是O(m*n),如果使用int作为矩阵元素的类型,则矩阵的占用空间大小为sizeof(int)*m*n,假如两个字符串的长度均为10000个字符,则矩阵大小为400MB,相当可观。参考一个快速、高效的Leve原创 2014-08-20 10:39:39 · 2497 阅读 · 0 评论 -
Levenshtein distance最小编辑距离算法实现
Levenshein distance,中文名为最小编辑距离,其目的是找出两个字符串之间需要改动多少个字符后变成一致。该算法使用了动态规划的算法策略,该问题具备最优子结构,最小编辑距离包含子最小编辑距离,有下列的公式。其中d[i-1,j]+1代表字符串s2插入一个字母,d[i,j-1]+1代表字符串s1删除一个字母,然后当xi=yj时,不需要代价,所以和上一步d[i-1,j-1]代价相原创 2014-08-19 21:11:18 · 15476 阅读 · 3 评论 -
WebP图片制作GUI工具
WebP是Google近几年推出的新型网络图片格式,有静态和动态两种类型,其中静态webp比jpg和png的压缩率都要大,而且失真率接近于png,远胜于jpg,因为他支持8位的透明通道。而动态webp比gif好了不止一两点,gif只支持2位的透明通道,而且图片锯齿严重。OK,既然有这么牛逼的图片格式,我们当然要好好使用了,而且现在Android端有Facebook推出的Fresco框架完美支持,不原创 2017-03-27 11:37:56 · 4478 阅读 · 0 评论