- 博客(32)
- 资源 (1)
- 收藏
- 关注
转载 策略类题目
1. 桌子上有2014枚棋子,甲乙两人轮流取走棋子.规则是:每人每次取的个数是1枚至5枚,谁最后取光桌上的棋子谁就获胜.如果甲先取,那么甲先取______枚棋子,才能保证自己必胜
2014-09-07 13:11:54
919
转载 如何理解C++中的动态绑定
在浏览C++论坛时,我总是能发现很多C++初学者的提问帖子,都是关于动态绑定的。基本大意就是不完全理解动态绑定该如何理解,造成一些面试或者实际编程上的困扰。本文就是针对这个问题作出的解答。作者并非技术大牛,不当之处还请大家在评论中指出,在下万分感谢。 我对于C++动态绑定的理解,一句话,就是编译器用静态分析的方法加上虚拟函数的设计实现在程序运行时动态智能执行正确虚拟函数的
2014-05-21 23:54:13
667
1
转载 n个数顺序入栈后的出栈顺序
解法①:递推法有n个位置,现在任意选定一个数,比如1,那么1可以在1-->n的任意一个位置上。假设1在第k的位置上,显然在1的前面有k-1个数,并且这些数的数值为2-->k,在1后面有n-k个数。用f(k)表示k个数顺序入栈后的出栈顺序,则f(n)就是我们要求的最终答案。而f(n)这个事件又可以分解成1在1-->n这n个位置上出现的n种情况,于是根据加法/乘法原理,易得f(n)is Cat
2014-04-05 17:37:14
1095
转载 C++编译器与链接器工作原理
zz: http://blog.sina.com.cn/s/blog_5f8817250100i3oz.html要明白的几个概念: 1、编译:编译器对源文件进行编译,就是把源文件中的文本形式存在的源代码翻译成机器语言形式的目标文件的过程,在这个过程中,编译器会进行一系列的语法检查。如果编译通过,就会把对应的CPP转换成OBJ文件。 2、编译单元:根据C++标准,
2014-02-28 23:06:54
495
转载 Socket之shutdown()用法
zz: http://blog.csdn.net/moxiaomomo/article/details/7897943通常来说,socket是双向的,即数据是双向通信的。但有些时候,你会想在socket上实现单向的socket,即数据往一个方向传输。单向的socket便称为半开放Socket。要实现半开放式,需要用到shutdown()函数。一般来说,半开放socket
2014-01-18 23:31:25
1150
转载 TCP协议中的三次握手和四次挥手(图解)
zz: http://blog.csdn.net/whuslei/article/details/6667471 建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生
2014-01-18 21:43:28
493
转载 Linux网络编程socket选项之SO_LINGER
Linux网络编程中,socket的选项很多.其中几个比较重要的选项有:SO_LINGER(仅仅适用于TCP,SCTP), SO_REUSEADDR. SO_LINGER 在默认情况下,当调用close关闭socke的使用,close会立即返回,但是,如果send buffer中还有数据,系统会试着先把send buffer中的数据发送出去,然后close才返回. SO_L
2014-01-18 20:57:01
1654
转载 表达式求值(前缀、中缀、后缀)
为了简化问题,关注算法,本文的讨论基于以下三点:1. 只考虑 + - * / ( ) 这几个基本运算符,且是二元操作2. 运算数只考虑 0-9,这10个简单的数,方便从string中取出来3. 输入的表达式没有语法错误 【背景知识】中缀表示法(Infix expression):操作符位于两个操作数中间,算术表达式的常规表示法。只用于二元操作符的情况,而且需要用括号和优先规
2014-01-04 19:25:42
1205
转载 Linux 信号signal处理机制
信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。一、信号的基本概念 本节先介绍信号的一些基本概念,然后给出
2014-01-03 14:18:13
440
转载 Linux 配置支持高并发TCP连接(socket最大连接数)
Linux配置支持高并发TCP连接(socket最大连接数)1、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打
2013-12-31 11:25:53
838
转载 linux下错误的捕获:errno、strerror和perror的使用
经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因。这个时候使用errno这个全局变量就相当有用了。 在程序代码中包含 #include ,然后每次程序调用失败的时候,系统会自动用用错误代码填充errno这个全局变量,这样你只需要读errno这个全局变量
2013-12-28 20:46:09
812
转载 有关send() / recv()函数的理解
转自:http://blog.csdn.net/petershina/article/details/79757981.send 函数 int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而
2013-12-24 11:00:46
470
转载 socket编程中write、read和send、recv之间的区别
一旦,我们建立好了tcp连接之后,我们就可以把得到的fd当作文件描述符来使用。由此网络程序里最基本的函数就是read和write函数了。ssize_t write(int fd, const void*buf,size_t nbytes);write函数将buf中的nbytes字节内容写入文件描述符fd.成功时返回写的字节数.失败时返回-1. 并设置errno变量. 在网络程序中,当我
2013-12-24 10:55:18
486
转载 bind出现Address already in use解决方法
转自:http://blog.csdn.net/petershina/article/details/7955183每次修改了源代码并再次编译运行时,常遇到下面的地使用错误:Cann't bind server socket !: Address already in use虽然用Ctrl+C强制结束了进程,但错误依然存在,用netstat -an |grep 5120和ps au
2013-12-24 10:53:33
681
转载 动态规划详解
终于来到了算法设计思想中最难,也最有趣的这部分,在去年的google笔试中,7道算法设计题有2道动态规划(Dynamic Programming)。看了这么久的算法,这部分也是唯一感觉到了比较难的地方,从这篇文章开始,将花连续的篇幅来讨论一些动态规划的问题。这包括书上介绍过的计算二项式系数,Warshall算法求传递闭包,Floyd算法求完全最短路径,构造最有二叉查找树,背
2013-12-23 17:18:48
565
转载 问题分解,分治与动态规划
问题分解就是通过对问题进行分解,从而将问题分解成有限个问题规模更小的子问题,从而达到问题求解的过程或者方法。问题分解是一种从问题规模出发来进行问题求解的方法,一般来讲,问题的规模与问题的复杂性密切相关,通过降低问题的规模可以达到减低问题复杂性,从而易于问题的求解。分治策略和动态规划都是这种思想。其实问题分解是问题求解思维中的一种基本的思维方式。当然问题能通过分解来获得答案,最关键的地方就是原问题的
2013-12-23 15:09:39
918
转载 Linux epoll使用详解
epoll简介epoll 是Linux内核中的一种可扩展IO事件处理机制,最早在 Linux 2.5.44内核中引入,可被用于代替POSIX select 和 poll 系统调用,并且在具有大量应用程序请求时能够获得较好的性能( 此时被监视的文件描述符数目非常大,与旧的 select 和 poll 系统调用完成操作所需 O(n) 不同, epoll能在O(1)时间内完成操作,所以性能相当高),
2013-12-23 11:19:56
389
转载 linux socket 编程 常用函数
socket 目 录 socketsocket()bind()connect()listen()accept()send() 和recv()sendto() 和recvfrom()close() 和shutdown()getpeername()gethostname()
2013-12-23 11:13:07
458
转载 Linux中epoll使用详解(精髓)
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且
2013-12-23 11:09:49
604
转载 linux中select()函数分析
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式
2013-12-23 11:08:05
364
转载 类的初始化列表与构造函数的区别
类的初始化列表与构造函数的区别构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:Example::Example() : ival(0), dval(0.0) {}//ival 和dval是类的两个数据成员上面的例子和下面不用初始化列表的构造函数看似没什么区别:Example::Example(){iva
2013-12-11 22:20:41
426
转载 GMM&K-means&EM
本文就高斯混合模型(GMM,Gaussian Mixture Model)参数如何确立这个问题,详细讲解期望最大化(EM,Expectation Maximization)算法的实施过程。单高斯分布模型GSM多维变量X服从高斯分布时,它的概率密度函数PDF为:(公式有误,应该是(2pi)^n)x是维度为d的列向量,u是模型期望,Σ是模型方差。在实际应用中u通常用样本均值来代替,Σ通
2013-12-02 11:16:13
669
转载 C++ new 详解
本文转自:http://blog.csdn.net/songthin/article/details/1703966?reload “new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解到的与new有关的内容做一个总结。new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事
2013-06-04 21:33:31
543
转载 协方差矩阵之主成分分析
PCA的缘起PCA大概是198x年提出来的吧,简单的说,它是一种通用的降维工具。在我们处理高维数据的时候,为了能降低后续计算的复杂度,在“预处理”阶段通常要先对原始数据进行降维,而PCA就是干这个事的。本质上讲,PCA就是将高维的数据通过线性变换投影到低维空间上去,但这个投影可不是随便投投,要遵循一个指导思想,那就是:找出最能够代表原始数据的投影方法。这里怎么理解这个思想呢?“最能代表原始
2013-05-03 19:40:01
1760
转载 KL距离,Kullback-Leibler Divergence
KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对熵(Relative Entropy)。它衡量的是相同事件空间里的两个概率分布的差异情况。其物理意义是:在相同事件空间里,概率分布P(x)的事件空间,若用概率分布Q(x)编码时,平均每个基本事件(符号)编码长度增加了多少比特。我们用D(P||Q)表示KL距离,计算公式如下:
2013-04-23 21:24:38
502
转载 Learning中的代数结构的建立 by MIT 林达华
Learning中的代数结构的建立Learning是一个融会多种数学于一体的领域。说起与此有关的数学学科,我们可能会迅速联想到线性代数以及建立在向量空间基础上的统计模型——事实上,主流的论文中确实在很大程度上基于它们。R^n (n-维实向量空间) 是我们在paper中见到最多的空间,它确实非常重要和实用,但是,仅仅依靠它来描述我们的世界并不足够。事实上,数学家们给我们提供了丰富得多
2013-04-03 18:57:21
591
原创 MATLAB @ 函数句柄的用法
函数句柄(Function handle)是MATLAB的一种数据类型。引入函数句柄是为了使feval及借助于它的泛函指令工作更可靠;使“函数调用”像“变量调用”一样方便灵活;提高函数调用速度,特别在反复调用情况下更显效率;提高软件重用性,扩大子函数和私用函数的可调用范围;迅速获得同名重载函数的位置、类型信息。MATLAB中函数句柄的使用使得函数也可以成为输入变量,并且能很方便的调用,提高函数
2013-03-15 15:38:46
2249
转载 MATLAB bwlabel
L = bwlabel(BW,n)返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2、num(连通区域的个数)。n的值为4或8,表示是按4连通寻找区域,还是8连通寻找,默认为8。四连通或八连通是图像处理里的基本感念:而8连通,是说一个像素,如果和其他像素在上、下、左、右、左上角、左下角、右上角或右下角连接着,则认为他们是联通的;4连通是指,如果像
2013-03-10 13:57:39
516
转载 [matlab-libsvm] 关于SVM参数c&g选取程序
http://blog.csdn.net/AlextoWarson/article/details/4764801#comments写了个程序 来选取SVM中参数 c和g的最佳值.[写这个的目的是方便大家用这个小程序直接来寻找c和g的最佳值,不用再另外编写东西了.]其实原本libsvm C语言版本中有相应的子程序可以找到最佳的c和g,需装载python语言然后用py 那个画
2013-03-07 18:21:25
2809
转载 Matlab中kmeans函数用法
K-means聚类算法将N*P的矩阵X划分为K个类。使用方法:Idx=Kmeans(X,K)[Idx,C]=Kmeans(X,K) [Idx,C,sumD]=Kmeans(X,K) [Idx,C,sumD,D]=Kmeans(X,K) […]=Kmeans(…,’Param1’,Val1,’Param2’,Val2,…)各输入输出参数介绍:X N*P的数
2013-03-06 14:29:54
29895
7
转载 bootstrps bagging boosting基本概念
注:本文为非本人原创,原文转载自:http://blog.sina.com.cn/s/blog_5dd2e9270100c8ko.html bootstrps bagging boosting这几个概念经常用到,现仔细学习了一下:他们都属于集成学习方法,(如:Bagging,Boosting,Stacking),将训练的学习器集成在一起,原理来源于PAC学习模型(Probably
2013-02-28 20:50:57
434
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人