2012年4月15日

一点心得(1)

摘要: 递归大师法求复杂度OT(n) = aT(n/b)+f(n)(1)对于某常数e>0,有f(n)=O(n^(logba-e)),则T(n) = O(n^logba)(2)如果f(n)=O(n^(logba)),则T(n) = O((n^logba)*lgn)(3)对于某常数e>0,有f(n)=Ω(n^(logba+e)),且对常数c<1与所有足够大的n,有af(n/b)<=cf(n),则T(n) = O(f(n)) 阅读全文

posted @ 2012-04-15 22:10 yuk.lin 阅读(117) 评论(0) 推荐(0) 编辑

2012年4月4日

一点心得(0)

摘要: 1, 在C++中,如果栈里的空间不足的话,要考虑用new命令在堆上动态生成数据,比如说保存所有无符号整数型的bitset,得用bitset<UINT_MAX+1>* bs = newbitset<UINT_MAX+1>;来声明定义,最后别忘了delete掉。2, make_pair和make_tuple都是可以嵌套的。3, fstream中使用seekp seekg等定位方法时,要注意如果已经是.eof()了,必须要.clear()之后才能定位 阅读全文

posted @ 2012-04-04 21:37 yuk.lin 阅读(143) 评论(0) 推荐(0) 编辑

2012年3月30日

[转] 数值计算的优化

摘要: 原帖已经打不开了,所以留着存根tag:代码优化,除法,牛顿迭代,减法代替除法,除法优化 说明:文章中的很多数据可能在不同的CPU或不同的系统环境下有不同的结果,数据仅供参考 x86系列的CPU对于位运算、加、减等基本指令都能在1个CPU周期内完成(现在的CPU还能乱序执行,从而使指令的平均CPU周期更小);现在的CPU,做乘法也是很快的(需要几个CPU周期,每个周期可能启动一个新的乘指令(x87)),但作为基本指令的除法却超出很多人的预料,它是一条很慢的操作,整数和浮点的除法都慢;我测试的英特尔P5赛扬CPU浮点数的除法差不多是37个CPU周期,整数的除法是80个CPU周期,AMD2200+浮 阅读全文

posted @ 2012-03-30 22:43 yuk.lin 阅读(559) 评论(0) 推荐(1) 编辑

2012年3月4日

Kinect初探之二

摘要: 今天研究了一下KinectColorImage,SDK里给的demo是WPF的,感觉通用性太低,于是用C# Forms实现了一下。弄了半天,确实能获取到colorImage,并用Marshal.Copy的方法把bytes变成bitmap,但是麻烦的是没办法用form_paint或者picturebox.Image显示出来,回头再研究一下吧。 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 阅读全文

posted @ 2012-03-04 22:17 yuk.lin 阅读(1169) 评论(5) 推荐(1) 编辑

2012年3月3日

Kinect初探之一

摘要: 微软在今年(2012)的二月一号推出了Kinect for Windows控制器和SDK,几经周折,本人在淘宝上找米国亚马逊代购来的机器终于在今天早上的时候被国企EMS送到手中——为什么不发顺丰啊我的天。1860软妹币包运费关税代购费——晚找代购一天涨了60——,此外略去不提。Kinect除了大家都知道的景深镜头,图像镜头之外,还有一个上下调整镜头的马达——千万千万不要手贱用力掰——、多个麦克风——对,他能像siri一样,甚至比siri还要awesome、他可以分辨声音的方位,并记录下位置。下载下来官方的SDK V1.0版,运行一下Demo比起Xbox的sensor而言多花的900人民币的价值 阅读全文

posted @ 2012-03-03 23:50 yuk.lin 阅读(1369) 评论(8) 推荐(3) 编辑

2011年12月10日

海量数据处理面试题 续一

摘要: 1. 给你A,B两个文件,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出A,B文件共同的URL。解法:由于给的内存有限,我们无法将单个文件不加处理直接存放到内存中,所以第一步要预处理数据。在题目中的数据是64字节的URL,也就是有64个char的字符串,考虑将每一个字符串进行模式提取,或者干脆压缩字符串,得到唯一标识。但这样的内存开销还是满足不了题目的要求。或者使用Hash函数针对64个char的字符串进行处理,得到唯一hash值,然后放入位图中处理。这个时候,由于内存是4G,可以创建的位图长度为34359738368大于100E,表明这种方法是可行的。针对两个文件建立 阅读全文

posted @ 2011-12-10 10:18 yuk.lin 阅读(1930) 评论(3) 推荐(3) 编辑

2011年12月9日

海量数据处理面试题

摘要: 有2.5E个整数数据,找出其中重复的,给定的内存是600M。由于题目描述的不够清晰,现在假定整数指的是int32,其中有正有负有零,范围就是int32的范围。可以用编程珠玑里的位图来处理,由于内存只有600M,刚好可以将数据分作正,负和0来处理,这个范围是两个2^31,那就是一次处理位图占用512M的内存。之前我用byte数组表示位图,有很多繁琐的步骤和数据结构,在分析博客园其他大牛的文章和手头资料之后决定使用BitArray来处理。总共需要两个位图,一个标志出现过的整数,一个标志这个整数是重复出现的。程序分作数据生成和处理两个部分。处理数据的时候程序大概占用了500多M。时间用的还蛮多的,占 阅读全文

posted @ 2011-12-09 22:30 yuk.lin 阅读(2630) 评论(0) 推荐(2) 编辑

2011年12月6日

Programming Pearls Essay 01 续一

摘要: 04 产生[0,n-1]并且没有重复的k个随机整数。方法1:在使用Random类时,每次选择不同的随机因子并在Next中划定范围。这种方法简单容易实现,看上去似乎是可以满足需求的,但我不知道怎么去证明。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace _01._04{ class Program { static void Main(string[] args) { int n = 1000000; ... 阅读全文

posted @ 2011-12-06 21:17 yuk.lin 阅读(258) 评论(0) 推荐(0) 编辑

Programming Pearls Essay 01

摘要: 01 如果不缺内存,如何使用一个具有库的语言来实现一种排序算法以表示和排序集合?1 Array.Sort(array);02 如何使用位逻辑运算(例如与,或,移位)来实现位向量。重要的概念:用一个n位长的字符串来表示一个所有元素都小于n的简单非负整数集合。相对一般的数据而言,其特点是:a,数据限制在一个范围里b,数据没有重复c,数据没有其他的关联项int n = 100;byte[] array = new byte[n];//可以储存[0,n*8)的数//用int m举例,假设m在范围内int m,index,step;//index确定byte数组的索引位置,step确定byte[inde 阅读全文

posted @ 2011-12-06 14:30 yuk.lin 阅读(333) 评论(0) 推荐(2) 编辑

导航