- 博客(221)
- 资源 (5)
- 收藏
- 关注
原创 师徒四人过桥问题
问题:四个人过桥,师傅需10分钟,三师弟挑担子5分钟,大师兄1分钟,二师兄2分钟,天黑了,一个手电,每次必须要有手电才能过桥,最多一次两人走,请问最短时间:解析: 思维突破点:连个最慢的肯定不能来回送手电,而且他俩一起过桥一次可以花费最少的十分钟,这十分钟无法省掉。 对策:既然两个最慢的一定要一起走,又不能用两个最慢的送手电,所以就得两个快的先一块过去,然后两个快的分别回来送一次手电,
2016-09-21 07:21:23 2530 1
转载 右左法则----复杂指针解析(函数指针与数组指针)
右左法则不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则原文:The right-left rule:Start reading the declaration from the innermost parentheses,go right,and
2016-09-17 17:26:25 1520 1
原创 数据库四大范式整理
引言 数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。 设计范式是不是很难懂呢?非也,大学教材上给我们一堆数学公式我们当然看不懂,也记不住。所以我们很多人就根本不按照范式来设
2016-08-18 21:43:03 15925 6
原创 GET与POST区别
GET与POST区别 HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST(Ajax开发,关心的只有GET请求和POST请求 )。GET与POST方法有以下区别:(1) 在客户端, Get 方式在通过 URL 提交数据,数据 在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。(2) GET方式提交的数据最多只能有1024字节,而POST
2016-08-14 22:07:14 638
原创 Http协议错误代码大全
错误代码(也称作状态代码),指为服务器所接收每个请求(网页点击)分配的 3 位数代码。多数有效网页点击都有状态代码 200(“正常”)。”网页未找到”错误会生产 404 错误。某些常见的代码以粗体显示。1xx(临时响应)用于表示临时响应并需要请求者执行操作才能继续的状态代码。代码 说明100(继续) 请求者应当继续提出请求。服务器返回此代码则意味着,服务器已收到了请求的第一部分,现正在等待接收其余
2016-08-12 23:10:37 6591
原创 求前n项和 , 要求不用乘除,循环,判断 (三种方法)
题目:题目:求 1+2+ … +n,要求不能使用乘除法、 for、 while 、 if、 else 、 switch、 case 等关键字以及条件判断语句( A?B:C)。方法1:用递归替代循环,结合短路特性退出递归 针对循环可以用递归来替代,而针对递归的结束可以用n&&(fun())来代替,因为一旦n等于0则不会执行后面的代码了int addtion(int n){
2016-08-12 07:29:26 2609
转载 常用五大算法详细介绍
简单介绍: 贪心算法:在对问题求解时,总是做出在当前看来是最好的选择,有可能陷入局部最优。 分治:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。 动态规划:将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。与分治的区别:经分解后得到的子问题往往不是互相独立的(即下一个子阶段的求解是建立
2016-08-08 22:35:39 1092
原创 件测试类型按开发阶段分为
1. 单元测试: 单元测试又称为模块测试,是针对软件设计的最小单位程序模块进行正确性检查的测试工作,单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行地独立进行单元测试。2. 集成测试又称为组装测试或联合测试,在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。3. 确认测试确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一
2016-08-08 14:52:19 1063
原创 逻辑测试
逻辑测试覆盖是白盒测试法常用的技术。主要的覆盖标准有6种 强度由弱到强依次是:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖1. 条件覆盖CC(Condition Coverage)设计足够多的测试用例,运行被测程序,使得每一判定语句中每个逻辑条件的可能取值至少满足一次。条件覆盖率的公式:条件覆盖率=被评价到的条件取值的数量/条件取值的总数X100%[1] 条件覆盖的缺点:只
2016-08-08 14:41:43 4360
原创 C++类对象空指针访问成员函数(静态绑定)
题目:class A{ public: void test(){printf("test A");}};int main(){ A*pA=NULL; pA->test();}结果是输出“test A”而不是程序崩溃,原因如下:一种解释: A*pA=null; pA->test();//当调用成员函数时,只是将实参null传给this指针test成员函数
2016-08-06 16:08:39 2757
原创 C++重载、覆盖、隐藏详细定义以及实际区别
成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派生类的函数与基类的函数同名,但是参数不
2016-08-06 15:47:13 461
原创 构造回文串(腾讯2014暑期实习生)
题目:给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.输出描述: 对于每组数据,输出一个整数,代表最少需要删除的字符个数。输入例子: abcda google输出例子: 2 2解法:利用回文串和最长公共子串(
2016-08-05 14:57:37 587
原创 等差、等比数列求和公式
等比数列求和公式求和公式推导(1)Sn=a1+a2+a3+…+an(公比为q) (2)q*Sn=a1*q+a2*q+a3*q+…+an*q=a2+a3+a4+…+an+a(n+1) (3)Sn-q*Sn=(1-q)Sn=a1-a(n+1) (4)a(n+1)=a1*q^n (5)Sn=a1(1-q^n)/(1-q)(q≠1)等差数列求和公式Sn=(A1+An)n/2
2016-08-03 07:50:53 9228 1
原创 caffe 进行自己的imageNet训练分类:loss一直是87.3365,accuracy一直是0
caffe 进行自己的imageNet训练分类:loss一直是87.3365,accuracy 一直是0,可能的原因是: 标签的问题: imagelist中,图像分类的标签label一定要从0开始,分类层的 num_output 和 标签的值域 不符合: a. 要知道imagenet是进行1000类的分类任务,我自己的数据是一个二分类,就一定要把最后‘fc8’InnerProduct的分类
2016-07-17 17:11:49 11587 1
原创 数据结构:有关广义表
广义表有如下三个特性:1.层次性:广义表的元素可以是子表,而子表的元素还可以是子表,由此,广义表是一个多层次的结构; 2.共享性:广义表可为其他表所共享。 3.递归表:广义表可以是其自身的一个子表。空广义表 vs 广义表表头为空广义表的表头为空,并不代表该广义表为空表。 例如: 广义表()和(())不同。前者是长度为0的空表,对其不能做求表头和表尾的运算;而后者是长度为l的非空表(只不过该表
2016-07-14 14:04:08 1192
原创 赋值到指定的内存地址
题目: 如下哪一段代码不能给地址0xaae0275c赋值为1?() A. volatile int *p=(int *)0xaae0275c;*p=1 B. (volatile int *)0xaae0275c[0]=1 C.volatile int *p=(int *)0xaae0275c;p[0]=1 D. *(volatile int *)0xaae0275c=1
2016-07-12 22:34:59 6410 1
原创 有关虚函数(不能声明的和需要极力避免的)
首先看不能声明为virtual虚函数的情况: 普通函数(不能被覆盖) 友元函数(C++不支持友元函数继承) 内联函数(编译期间展开,虚函数是在运行期间绑定) 构造函数(没有对象不能使用构造函数,先有构造函数后有虚函数,虚函数是对对象的动作) 静态成员函数(只有一份大家共享) 再看需要避免的情况:-简明概括: 先析构子类再析构父类,如果父类析构函数有虚函数,会
2016-07-11 14:28:16 992
原创 Linux和Windows间进程通信方式整理
Linux进程间通信:管道、信号、消息队列、共享内存、信号量、套接字(socket) Linux线程间通信:互斥量(mutex),信号量,条件变量 Windows进程间通信:管道、消息队列、共享内存、信号量 (semaphore) 、套接字(socket) Windows线程间通信:互斥量(mutex),信号量(semaphore)、临界区(critical section)、事件(event
2016-07-11 09:46:14 1115
原创 进程平均周转时间的计算
题目: 有4个进程A,B,C,D,设它们依次进入就绪队列,因相差时间很短可视为同时到达。4个进程按轮转法分别运行11,7,2,和4个时间单位,设时间片为1。四个进程的平均周转时间为 ()?分析 要理解周转时间的含义,所谓的周转时间就是进程从开始到结束所经历的时间; 平均周转时间就是所有进程的周转时间除以进程的个数就OK了。
2016-07-11 09:40:41 20295
原创 两个线程运行++a
题目:个线程并发执行以下代码,假设a是全局变量,初始值是1,那么以下输出中()是可能的。void foo ( ){ ++a printf("%d",a);} A. 3_2_ B. 2_3_ C. 3_3_ D. 2_2_答案:ABCD解析:++不能认为是原子操作,a是全局变量,在内存中,则++a一般被分为从内存取a到寄存器、+、回写到内存三步,考虑到并发。 设
2016-07-10 20:44:46 1290
转载 C语言运算符优先级 之 快速记忆
先摘录谭浩强《C程序设计》对运算符优先级的两点说明:1. 同一优先级的运算符,运算次序由结合方向来决定。 例如: a) * 与 / 具有相同的优先级别,其结合方向为自左向右,因此3 * 5 / 4的运算次序是先乘后除; b) - 和 ++ 为同一优先级,结合方向为自右向左,因此 - i ++ 相当于 - ( i ++ )。2. 从上述表中可以大致归纳出各类运算
2016-07-08 08:04:49 608
原创 inline内联函数详解
内联函数:Tip: 只有当函数只有 10 行甚至更少时才将其定义为内联函数.定义: 当函数被声明为内联函数之后, 编译器会将其内联展开, 而不是按通常的函数调用机制进行调用. 优点: 当函数体比较小的时候, 内联该函数可以令目标代码更加高效. 对于存取函数以及其它函数体比较短, 性能关键的函数, 鼓励使用内联. 缺点: 滥用内联将导致程序变慢. 内联可能使目标代码量或增或减, 这取决于内联函数的
2016-07-08 07:54:09 6191
原创 Linux中的内存段
BSS(Block Started by Symbol)通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。特点是:可读写的,在程序执行之前BSS段会自动清0。所以,未初始的全局变量在程序执行之前已经成0了。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。代码段:代码段(code segment/text s
2016-07-03 22:20:02 425
原创 c++运算符的重载
(1)只能使用成员函数重载的运算符有:=、()、[]、->、new、delete。(2)单目运算符最好重载为成员函数。(3) 对于复合的赋值运算符如+=、-=、*=、/=、&=、!=、~=、%=、>>=、<<=建议重载为成员函数。(4) 对于其它运算符,建议重载为友元函数。运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说
2016-06-29 07:39:20 590
原创 C++中32位单精度浮点数有效数字是多少位?
单精度浮点数的有效位数是7位。双精度浮点数的有效位数是16位一个浮点数由三部分组成:符号位S、指数部分E(阶码)以及尾数部分M。单精度浮点数(float)总共用32位来表示浮点数,其中尾数用23位存储,加上小数点前有一位隐藏的1(IEEE754规约数表示法),`2^(23+1) = 16777216。因为 10^7 < 16777216 < 10^8,`所以说单精度浮点数的有效位数是7位。考
2016-06-29 07:36:00 12874
原创 进程与线程的区别
线程是指进程内的一个执行单元,也是进程内的可调度实体。线程与进程的区别:(1)地址空间:进程内的一个执行单元,进程至少一个线程,他们共享进程的地址空间,而进程有自己独立的地址空间(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程资源(3)线程是处理器调度的基本单位,但进程不是(4)二者皆可并发执行 进程和线程都是操作系统的程序运行的基本单元,系统利用该基本单元实现系统对应用的
2016-06-29 07:02:48 368
原创 ImportError: cannot import name mkdtemp
问题: 以前是没问题的 今天突然python导入cv2和caffe却开始报错,如题。解决办法:pip install -U numpy更新numpy即可
2016-06-28 14:28:51 3208 1
原创 单缓冲 vs 双缓冲 处理数据时间计算方法
对于单缓冲:假定从磁盘把一块数据输入到缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据处理的时间为 C。由于T和C是可以并行的,当T>C时,系统对每一块数据的处理时间为M十T,反之则为M+C,故可把系统对每一块数据的处理时间表示为Max(C, T)+M。对于双缓冲:系统处理一块数据的时间可以粗略地认为是MAC(C, T)。如果C<T,可使块设备连续输入(图中
2016-06-28 07:07:07 9514
原创 柔性数组
对于变长数组和变长结构体,这是在C99才加入标准的。 对于变长数组,举个例子就能解释了:int main() { int n = 10; int arr[n];}对于变长结构体就比较复杂一点(也不算很复杂:))。很多人其实会有这种疑惑,就是为什么不用指针去代替变长结构体,比如:structNode{ intsize; char*data;//不用指针,二用柔性数组实
2016-06-28 07:03:29 477
原创 负数的二进制表示
1. 简单介绍:原码: 正数原码就是其二进制。 负数的原码就是其二进制,并将最高位作为符号位设为1。 eg: -1 原码为:1000 0001 复数进行运算时用补码表示 负数补码 = 负数原码不考虑最高符号位的原码的反码 + 1 eg: -1 的补码为:1111 1110(反码) +1 = 1111 11112. 详细介绍:在二进制码中,为了区分正负数,采用最高
2016-06-26 19:49:23 5926
原创 分区存储管理方法
首次适应法:从空闲 分区表 的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法目的在于减少查找时间。为适应这种算法,空闲分区表(空闲区链)中的空闲分区要按地址由低到高进行排序。该算法优先使用低址部分空闲区,在低址空间造成许多小的空闲区,在高 地址空间 保留大的空闲区。最佳适应算法:从全部空闲区中找出能满足作业要求的、且大小最小的空闲分区的一种计算方法,这种方法能使碎片尽量小。
2016-06-25 08:54:42 2453
原创 不能声明为虚函数的情况
虚函数是为了实现动态绑定,不能声明为虚函数的有:静态成员函数 类外的普通函数 构造函数友元函数此外,还有一些函数可以声明为虚函数,但是没有意义,但编译器不会报错,如:赋值运算符的重载成员函数: 因为复制操作符的重载函数往往要求形参与类本身的类型一致才能实现函数功能,故形参类型往往是基类的类型,因此即使声明为虚函数,也把虚函数当普通基类普通函数使用。内联函数:内联函数目的是在代码中直接展
2016-06-22 07:46:41 387
转载 32位和64位系统区别及int字节数
一)64位系统和32位有什么区别? 1、64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存2、64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系统,64bit软件的基础上的。 什么是64位处理器?之所以叫做“64位处理器”,是因为电脑内部都是实行2进制运算,处理器(C
2016-06-21 22:43:51 1067
原创 进程和线程的关系
线程是进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),一个线程可以创建和撤销另一个线程;进程和线程的关系:一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。资源分配给进程,同一进程的所有线程共享该进程的所有资源。线程在执行过程中,需要协作同步
2016-06-21 06:56:55 446
原创 临界资源 & 临界区
临界资源是指每次仅允许一个进程访问的资源。 属于临界资源的硬件有打印机、磁带机等,软件有消息缓冲队列、变量、数组、缓冲区等。 诸进程间应采取互斥方式,实现对这种资源的共享。 临界区每个进程中访问临界资源的那段代码称为临界区。一个临界资源可以对应多个临界区(right)显然,若能保证诸进程互斥地进入自己的临界区,便可实现诸进程对临界资源的互斥访问。为此,每个进程在进入临界区之前,应先对欲访问的临界资
2016-06-20 08:02:57 2138
原创 windows下运行caffe例子:cifar10图像训练生成caffemodel
硕士毕业论文第二点扯到了CNN上,准备用caffe框架来做,装好windows下caffe后运行了第一个经典例子LeNet :参考:http://blog.csdn.net/tianrolin/article/details/51434687 运行第二个cifar10例子时,不会写bat文件,运行也各种错误,这里总结一下我遇到的问题和解决办法。亲测有用! 一、数据集准备 到官网中下载cifar
2016-06-19 18:36:40 3624 4
原创 线程与进程共享的资源种类
线程占有的都是不共享的,其中包括:栈、寄存器、状态、程序计数器线程间共享的有:堆,全局变量,静态变量;进程占有的资源有:地址空间,全局变量,打开的文件,子进程,信号量、账户信息。
2016-06-18 09:28:55 933
原创 不发生死锁的设备最小数
题目: 某系统有 n 台互斥使用的同类设备,3 个并发进程需要 3,4,5 台设备,可确保系统不发生死锁的设备数 n 最小为?分析:假设3个进程分别为A,B,C,那么需要的最大的情况为:2,3,4此时再多一个资源就可以打破死锁的环境,所以为2+3+4+1=10详细说:极端状态下: 进程1(3台):申请到2台,无法工作; 进程2(4台):申请到3台,无法工作; 进程3(5台):申请到4
2016-06-17 08:30:50 10277 1
《Color Transfer Based on Normalized Cumulative Hue Histograms》代码实现
2015-04-16
opencv 摄像机标定程序 已调试成功 附带畸变图片
2014-11-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人