自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黄金分割

精益求精

  • 博客(24)
  • 收藏
  • 关注

原创 用decorator实现python单例模式

在 python 里实现单例模式有许多方法,个人觉得还是基于 decorator 的方法最优雅。从 stackoverflow 上找到一个实现,我将它改成了线程安全的,记录如下:import threadingclass Singleton: """ A class to ease implementing singletons. This should be

2013-01-08 15:45:29 612

原创 用atomic_t为多线程分配唯一的序号

最近有一个需求,要求在常数区间 [S, E] 里为多个线程分配唯一的序号。如: S, S+1, S+2, ...  E-2, E-1, E, S, S+1,...困难在于不使用锁的情况下实现线程安全。最后使用内核提供的 atomic_t 实现。代码如下:int seq(){ static atomic_t curr = ATOMIC_INIT(S); in

2013-01-05 12:00:42 671

原创 [PYTHON]用lamdba实现递归函数

lambda 算符实现的匿名函数由于没有函数名,很难实现递归算法。但是可以通过把函数本身作为一个参数传递进来来实现递归算法。以阶乘为例:fac=lambda self, n: 1 if n == 1 else n * self(self, n-1)

2012-09-03 14:15:55 1089

原创 【转】gcc.x86_64的参数传递

版权为 win_hate 所有, 转载请保留作者名字我这段时间要把以前的一个 x86_32 的 linux 程序移植到 x86_64(AMD) 的 linux 环境里. 由于写的是数学算法, 64 与 32 位有很大不同, 代码实际上要重写. 看了点资料后, 觉得 AMD64 的扩展于以前 16 到 32 位的扩展很类似, e**, 扩展为 r**, 此外还多了8个通用寄存器 r8~r15...

2011-01-21 18:06:33 314

原创 [Code jam 2010]Qualification Round题目分析

Code Jam 2010:http://code.google.com/codejam Snapper Chain 其实这是一道英语阅读理解题,真的。只要读懂了就能轻松的做出来。 Snapper是一种带电子开关的插线板(我的理解)。它的一边是插头另一边是插孔。电子开关有两种状态:开和关,只有当插头通电是开关才能切换状态,且插头断电后开关状态保持不变。现在有N个snappe

2010-05-09 10:46:00 865

翻译 Flash,Google,VP8以及互联网视频的未来(一)

原文见:http://x264dev.multimedia.cx/?p=292  Flash,Google,VP8以及互联网视频的未来这将会是一个比往常更长的帖子,因为它会涵盖了许多内容。互联网上充斥着抱怨Flash的文章很长时间了,以至于听起来就像整个互联网在喊狼来了。但是,当然,尽管不断抱怨,他们是对的:Flash在Windows x86以外的平台性能都很糟糕而

2010-02-26 12:51:00 1946

原创 素数测试

给定一个数字n,检测n是否是一个素数。 最简单的方法就是尝试从2到 n的平方根 是否整除N。 def isPrime(n): for i in range(2, int(pow(n, 0.5))): if n % i == 0: return False return True  另一种方法就是米勒-拉宾素数测试: 一

2010-02-07 16:41:00 654

原创 线程池版的SocketServer

python的SocketServer模块提供了一个开发socket server的捷径。但是其自带的异步handler ThreadingMixIn每次处理请求是都会产生一个新的线程,在负载较重的时候会有一些问题。需要一个使用线程池的TCPServer. 具体的代码如下: from threading import Threadfrom SocketServer import Threa

2010-02-07 15:22:00 1289 1

原创 [code jam 2009试题分析]Qualification Round - Alien Language

题目如下: Problem After years of study, scientists at Google Labs have discovered an alien language transmitted from a faraway planet. The alien language is very unique in that every word consists of exac

2010-02-05 09:31:00 606

原创 【百度面试题】循环有序数组的查找问题

问题:有一个循环有序数组A,如{7,8,9,0,1,2,3,4,5,6},不知道其最小值的位置。那么如何从这样的数组中寻找一个特定的元素呢? 解决:当然,遍历总是一个办法。当然面试的时候回答遍历估计就直接杯具了。 我的想法是将原数组分段,用首元素s,中间元素m和尾元素e,可以将数组分为两个子数组s1,s2,那么,必然有至少一个子数组是有序的。那么如何确定那一段是有序

2010-01-31 18:39:00 3436 1

[code jam 2009试题分析]Qualification Round - Alien Language

题目如下:ProblemAfter years of study, scientists at Google Labs have discovered an alien language transmitted from a faraway planet. The alien language is very unique in that every word consists of ex...

2009-09-16 16:14:24 169

【笔记】第一卷第一章 基本概念

[b]1.1 算法 Alogrithm[/b][b]算法E[/b](欧几里德算法)求两个数的最大公约数[code="c"]//greatest common divisorint gcd(int a, int b){ int r; assert(a * b != 0); r = a % b; while(r != 0) { a = b; b = r;...

2009-08-04 16:34:51 114

用sqlite3实现稀疏矩阵

用python实现了一个稀疏矩阵。基本思想是3元组(行坐标、列坐标和值)描述矩阵。将3元组保存在sqlite3的内存表里。代码如下:[code="python"]import sqlite3class SparseMatrix: def __init__(self, row_count=2147483647, column_count=2147483647):...

2009-07-29 11:49:54 170

线程池版的SocketServer

python的SocketServer模块提供了一个开发socket server的捷径。但是其自带的异步handler ThreadingMixIn每次处理请求是都会产生一个新的线程,在负载较重的时候会有一些问题。需要一个使用线程池的TCPServer.具体的代码如下:[code="python"]from threading import Threadfrom Socket...

2009-07-29 11:32:16 260

素数测试

给定一个数字n,检测n是否是一个素数。最简单的方法就是尝试从2到 n的平方根 是否整除N。[code="python"]def isPrime(n): for i in range(2, int(pow(n, 0.5))): if n % i == 0: return False return True[/code]...

2009-06-25 17:13:18 141

称苹果问题

问题:10个箱子,每个箱子10个苹果,其中一个箱子的苹果是9两/个,其他的都是1斤/个。要求利用一个秤,只秤一次,找出那个装9两/个的箱子。 分析:注意到题目中提供的是秤而不是天平。而且苹果的重量已经明确的给出了。因为只能称一次,所以一定是通过这个重量来推断出是哪个箱子。为了区分不同的箱子,从不同箱子里取出的苹果数也必定不同。想到这里答案就已经呼之欲出了。解答:...

2009-06-25 13:32:33 1286

python的编码

文件的编码在py文件的头部用“# -*- coding:TYPE -*-”来标记py文件的编码如# -*- coding:gbk -*-就表示该文件中的所有字符都是gbk编码的。但是该标记不影响python的输入输出的编码。字符串的编码在python(2.X版)内部有两种字符串str和unicodestr不使用任何编码,不可显示的字符显示为'\xXX',XX为在...

2009-06-23 15:46:02 113

猜牌问题的分析与解答

题目:S先生、P先生、Q先生他们知道桌子的抽屉里有16张扑克牌:红桃A、Q、4 黑桃J、8、4、2、7、3 草花K、Q、5、4、6 方块A、5。约翰教授从这16张牌中挑出一张牌来,并把这张牌的点数告诉 P先生,把这张牌的花色告诉Q先生。这时,约翰教授问P先生和Q 先生:你们能从已知的点数或花色中推知这张牌是什么牌吗?于是,S先生听到如下的对话:P先生:我不知道这张牌。 (1)Q...

2009-06-23 14:53:51 344 1

[TAOCP第三卷6.1节]顺序搜索

TAOCP第三卷搜索算法中最先讲的就是顺序搜索。顺序搜索的优点是足够的简单,在数据量足够小的时候速度最快。而且在无序数据集的时候顺序搜索是唯一可行的方法。首先是6.1节的程序S[code="c"]int search(int array[],int count, int n) { int i = 0; for(; i < count; i++) { ...

2009-06-22 17:54:54 164

旋转一个矩阵

[code="python"]zip(*matrix)[/code]

2009-06-19 10:23:51 102

原创 使用python访问hbase

通过thrift,我们可以使用python访问hbase。 关于thriftthrift是一个跨语言服务的软件开发框架(Thrift is a software framework for scalable cross-language services development.)。它的官方网站是:http://incubator.apache.org/thrift/ 下载

2009-04-19 12:06:00 9856 1

原创 旋转一个矩阵

如何用最短的代码旋转一个矩阵?def print_table(t):    for i in t:        for j in i:            print j,        printm = [[1,2,3],[4,5,6],[7,8,9]]n = zip(*m)print_table(m)print_table(n)输出如下:1 2 34 5 67 8 91 4 72 5 83

2008-09-11 15:41:00 1092 3

原创 求解数独

 按照两个规则进行#1 如果某个格X只能填入i,则X=i#2 如果某个数字i只能填入格X,则X=i后来发现只要#2就能够求出解了。代码如下,接受一个包含81个数字的字符串,对应数独的81格,未知的格用0表示。如果没有参数则自动生成一个测试用例。import sysimport osimport randomfrom array import arraytestcase = "16497352825

2008-09-08 14:34:00 690

原创 求一个整数各个位上的数字之和

判断一个整数能否被3整除,最快的方式是将该整数的各个位上的数字相加,看看和能否整除3。求一个整数各个位上的数字之和的函数如下:>>>add = lambda x : sum([int(i) for i in str(x)])>>>add(123456789)45

2008-09-08 14:22:00 2553

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除