08 2013 档案

摘要:引子:二进制中1的个数请实现一个函数,输入一个整数,输出该数二进制表示中的个数。例如把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2。 此题容易进入一个误区:误认为输入的数一定是正数,于是我很快写出这样的代码: 1 int num(int n) 2 { 3 int count=0; 4 while(n) 5 { 6 if(n&1) count++; 7 n=n>>1; 8 } 9 return count;10 } 看完书,发现自己落入了作者或者说面试官所设的圈套。如果输入的是-9,那么程序就会陷入死循... 阅读全文
posted @ 2013-08-31 22:55 七年之后 阅读(374) 评论(0) 推荐(0)
摘要:当我们写一个class类,然后sizeof(),然后发现这个值往往比你想象的大,这是为什么呢?这里就要讲到内存对齐的问题。 先来看一下内存对齐的几条原则: 1.对于class(struct/union)的各个成员,第一个数据成员放在偏移为0的地方,以后每个数据成员存储的其实位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比如说是数组,结构体等)的整数倍开始; 2.结构体作为成员时,结构体成员要从其内部最大元素大小的整数倍地址开始存储; 3.结构体的总大小,也就是sizeof的结果,必须是其内部最大成员的整数倍,不足要补齐。下面看一个小例子:#includeusing namesp. 阅读全文
posted @ 2013-08-28 16:28 七年之后 阅读(311) 评论(0) 推荐(0)
摘要:描述:判断给定线段L1,L2是否相交,其中L1表示为s1x,s1y,e1x,e1y,L2表示为s2x,s2y,e2x,e2y输入:多组数据输入,每组一行,每组八个浮点数,s1x,s1y,e1x,e1y,s2x,s2y,e2x,e2y输出:相交则输出yes否则输出no样例输入:0 1 2 1 1 0 1 21 1 2 2 3 3 4 4样例输出:yesno 1 #include 2 using namespace std; 3 4 struct Point 5 { 6 double x; 7 double y; 8 }; 9 10 struct Segment11 {12 ... 阅读全文
posted @ 2013-08-20 16:36 七年之后 阅读(228) 评论(0) 推荐(0)
摘要:一.PCA 在讲PCA之前,首先有人要问了,为什么我们要使用PCA,PCA到底是干什么的?这里先做一个小小的解释,举个例子:在人脸识别工作中一张人脸图像是60*60=3600维,要处理这样的数据,计算量肯定很大,为了能降低后续计算的复杂度,节约时间,我们在处理高维数据的时候,在“预处理”阶段通常要先对原始数据进行降维,而PCA就是做的这个事。本质上讲,PCA就是讲高维的数据通过线性变换投影到低维空间上去,这个投影可不是随便投投,我们要找出最能代表原始数据的投影方法,亦即不失真,可以这么理解,被PCA降掉的那些维度只能是那些噪声或者是冗余数据。 下面就先讲一下PCA算法的主要过程: 主成分分析( 阅读全文
posted @ 2013-08-20 14:17 七年之后 阅读(1980) 评论(0) 推荐(0)