![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
algorithm
largetalk
技术宅,享受coding, python粉丝,热爱c, linux,想找个人一起去旅行
展开
-
约瑟夫问题
n个人围成一圈,数到m得人出列,下面得人继续数,求最后一个人的编号,这就是约瑟夫问题。 可以看 http://www.cppblog.com/Victordu/archive/2008/02/22/43082.html 一个倒推得解法: 问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。 我们知道第一个人(编号一定是m转载 2011-09-24 12:10:09 · 444 阅读 · 0 评论 -
datrie中文支持不够?
要找一个trie的python包,希望性能不错,支持中文。pytrie是python实现,而且是基于hash数据结构的,先pass,找了下,发现datrie , 看起来是不错, C实现的 double array trie数据结构,应该可以的,用上才发现有点问题,我也不清楚是用的不对,还是其他原因。上点测试代码看看,有用过的请指点一下。 先看看英文的: #coding:utf-8 imp原创 2013-07-01 23:51:24 · 5968 阅读 · 2 评论 -
python源码查找子串
首先找到string.find定义的地方, 在Objects/stringobject.c: static PyObject * string_find(PyStringObject *self, PyObject *args) { Py_ssize_t result = string_find_internal(self, args, +1); if (result ==原创 2012-02-07 13:28:35 · 2229 阅读 · 3 评论 -
python string hash 函数
static long string_hash(PyStringObject *a) { register Py_ssize_t len; register unsigned char *p; register long x; if (a->ob_shash != -1) return a->ob_shash; len = Py_SIZE(转载 2012-02-03 15:09:19 · 11270 阅读 · 1 评论 -
小程序几道
将字符串中空格长度大于1的空格变成一个空格, 时间复杂度O(N), 空间复杂度o(N) def test1(): sr = 'abcd abcde abcd dd abcd 123' sl = list(sr) st = False i=j=0 for x in sr: if x != ' '原创 2012-03-31 16:13:40 · 946 阅读 · 0 评论 -
k-mean算法实现
k-means 算法的工作过程说明如下: 初始化:聚类数k,初始聚类中心x,迭代次数或者收敛条件。 首先,从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类; 然后,再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值); 再次,不断重复上面的过程直到满足原创 2012-05-31 23:30:45 · 1681 阅读 · 0 评论 -
对数步计算斐波那契数列
先上代码: def fib_iter(a, b, p, q, n): if n==0: return b if n%2 == 0: return fib_iter(a,b, p*p+q*q, 2*p*q+q*q, n/2) return f原创 2012-05-10 10:18:42 · 2763 阅读 · 2 评论 -
两个字符串最长的公共字串问题(LCS)
两种方法动态规划和后缀树 #!/usr/bin/env python # --*-- coding: utf8 --*-- # #Longest common substring def display_matrix(matrix): print '###############################' for x in matrix: print x原创 2012-04-05 16:41:43 · 852 阅读 · 0 评论 -
打印出字母构成一样的词
primes = [2, 3, 5, 7, 11 ,13 ,17 ,19 ,23 ,29 ,31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101] sample = ['hat', 'top', 'pot', 'peer', 'pper', 'pire', 'ripe'] def printSameChar(word_原创 2012-02-03 12:39:51 · 809 阅读 · 0 评论 -
自然数序列,找出任意连续之和等于n的所有子序列
lst = [0,2,4,5,3,1,8,6,4,7,9,3,2] total_sum = 9 def sum_seq(lst): seq = [] ct = 0 for x in lst: seq.append(x) ct += x if ct == total_sum: print seq原创 2012-02-02 10:24:09 · 3691 阅读 · 0 评论 -
floyd's cycle detect算法
今天在网上看到一个python脚本,用来求一串数字中重复得那个数字,具体看这里:http://www.keithschwarz.com/interesting/code/?dir=find-duplicate 他得程序是 def findArrayDuplicate(array): assert len(array) > 0 # The "tortoise and har原创 2011-11-29 23:15:14 · 1824 阅读 · 0 评论 -
Factorization Machine
很久很久没有更新这个博客了,最近想发点东西,先发点以前写的吧 简介 因子分解机(Factorization Machine, FM)是由Steffen Rendle提出的一种基于矩阵分解的机器学习算法。 对于因子分解机FM来说,最大的特点是对于稀疏的数据具有很好的学习能力。 模型 y^:=w0+∑i=1nwixi+∑i=1n−1∑j=i+1n⟨vi,vj⟩xixj\hat{y} := w_{0} ...原创 2018-12-14 14:47:31 · 494 阅读 · 0 评论