自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 资源 (2)
  • 收藏
  • 关注

原创 熵值法

一、基本原理在信息论中,熵是对不确定性的一种度量。信息量越大,不确定性就越小,熵也就越小;信息量越小,不确定性越大,熵也越大。根据熵的特性,可以通过计算熵值来判断一个事件的随机性及无序程度,也可以用熵值来判断某个指标的离散程度,指标的离散程度越大,该指标对综合评价的影响(权重)越大,其熵值越小。在信息论中,熵是对不确定性信息的一种度量。信息量越大,不确定性就越小,熵也就越小;信息量越小,...

2018-10-27 09:49:19 76560 5

转载 机器学习:最大熵模型

1.熵与最大熵原理熵是随机变量不确定性的度量,不确定性越大,熵值就越大;若随机变量退化成定值,熵为0。均匀分布是“最不确定”的分布假设离散随机变量X的概率分布为P(x),则其熵为:联合熵和条件熵两个随机变量的X,Y的联合分布,可以形成联合熵,用H(X,Y)表示条件熵H(X|Y) = H(X,Y) - H(Y) 相对熵与互信息 设p(x),q(x)是X中取值的两...

2018-10-27 09:38:13 268 2

原创 层次分析法

 概念:层次分析法(Analytic Hierarchy Process ,简称 AHP )是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。它是美国运筹学家T. L. Saaty 教授于上世纪 70 年代初期提出的一种简便、灵活而又实用的多准则决策方法一、步骤1、建立递阶层次结构模型2、构造出各层次中的所有判断矩阵3、层次单排序及...

2018-10-26 11:08:49 17516 5

原创 QChart动态绘图时内存泄漏

在使用QChart绘图过程中,发现程序运行一段时间后,内存一直在不停的增加,hens很是郁闷,关闭动态绘图则不卡顿,内存bian变化也不大,后来查资料发现:在Qt的bugreports里找到这个帖子:QCharts Memory Leak,描述的问题是QXYSeries 中使用append加入了数据点,再调用remove的时候,数据点并没有被释放,导致了内存泄露的问题。后面换到了5.9以上的版...

2018-10-22 16:31:13 3389

原创 qt 中回调函数的实现

 在QT中回调函数主要可以实现多态性,通过回调函数可以动态处理一些操作。在多线程中,当同时需要处理多个事务的时候,显然你会去创建多个线程类然后实例化,这显然会增加开发工作,当我们在线程类中加入一个回调函数,在run()函数调用这个回调函数,显然可以降低线程的耦合性,提高开发效率,在实例化这个线程时,传递实例化的回调函数到这线程中,这样就避免了线程类的重复创建。回调函数的实现主要有两种:...

2018-10-22 10:19:08 16862

原创 QSqlDatabase: QMYSQL driver not loaded

QT 连接 mysql的时候,常常遇到如下错误:QSqlDatabase: QMYSQL driver not loadedQSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7error open database because "Driver not loaded Driv...

2018-10-21 10:33:51 739

原创 libsvm 中svmpredict返回值为空

 最近在做SVM的回归,发现svmpredict的返回值为空,很是郁闷,后来发现是因为libsvm的版本问题,如果我们使用的是以前老的版本,只需要输入两个参数就可以。[predict,mse] = svmpredict(TS,TSX,model);但是当使用3.18或者3.17版本时返回值为空,于是修改返回参数列表如下,变成了不为空。但是在3.20版本时,依旧为空显然...

2018-10-18 08:57:24 3216 4

转载 libsvmpredict和svmtrain的参数和返回值

对svmtrain函数的输入参数和返回值进行说明1. 训练libsvm函数用于对训练集的数据进行训练,得到训练好的模型。model = libsvmtrain(training_label_vector, training_instance_matrix ['libsvm_options']);这个函数有三个参数,其中-training_label_vector:训练样本的类标,...

2018-10-17 15:45:32 13953 2

转载 Linux awk用法

在学习awk之前我们应该都学过sed,grep,tr,cut等等命令,这些命令都是为了方便我们对Linux下文本和数据的处理,但是我们会发现很多时候这些命令并不能一下子就完全解决我们的需求,很多时候我们都需要使用管道符结合这些命令来使用,今天我就给大家介绍一个命令awk,他就能很好的解决我们对文本和数据处理的需求,使我们一条命令就解决很多问题。一、awk命令简介awk被称为文本处理三剑客之...

2018-10-11 10:18:30 132

转载 Linux chmod 使用分析

chmod命令用来变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。权限范围的表示法如下:u User,即文件或目录的拥有者;g Group,即...

2018-10-11 08:54:26 133

原创 MySQL InnoDB事务的隔离级别

MySQL InnoDB事务的隔离级别有四级,默认是“可重复读”(REPEATABLE READ)。未提交读(READ UNCOMMITTED)。另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读)。 提交读(READ COMMITTED)。本事务读取到的是最新的数据(其他事务提交后的)。问题是,在同一个事务里,前后两次相同的SELECT会读到不同的结果...

2018-10-09 16:16:36 3203

转载 STL中bind1st与bind2nd差异分析

bind1st和bind2nd函数把一个二元函数对象绑定成为一个一元函数对象。但是由于二元函数对象接受两个参数,在绑定成为一元函数对象时需要将原来两个参数中的一个绑定下来。也即通过绑定二元函数对象的一个参数使之成为一元函数对象的。bind1st是绑定第一个参数,bind2nd则是绑定第二个参数。bind1st(const Fn2& Func,const Ty& left); ...

2018-10-08 09:53:52 590

转载 Sizeof与Strlen差异分析

 一、sizeof    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。    它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。    由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的...

2018-10-07 10:22:25 126

原创 DML、DDL和DCL的区别

一、DMLDML(data manipulation language)数据操纵语言:在数据库中对数据进行一些简单操作    例如: SELECT、UPDATE、INSERT、DELETE等SELECT 列名称 FROM 表名称UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值INSERT INTO table_name (列1, 列2,...) VALU...

2018-10-07 09:48:09 283

原创 Linux系统内存管理之伙伴系统分析

  1.伙伴系统概念  伙伴系统是一种经典的内存管理方法。Linux伙伴系统的引入为内核提供了一种用于分配一组连续的页而建立的一种高效的分配策略,并有效的解决了外碎片问题。 2.伙伴系统的组织结构  Linux中的内存管理的“页”大小为4KB。把所有的空闲页分组为11个块链表,每个块链表分别包含大小为1,2,4,8,16,32,64,128,256,512和1024个连续页框的页块...

2018-10-06 10:28:28 162

原创 进程间通信方式剖析

进程间通信的方式有管道、信号、信息量、消息队列、共享内存、套接字1)管道:无名管道和有名管道无名管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用.进程的亲缘关系一般指的是父子关系。无名管道一般用于两个不同进程之间的通信。当一个进程创建了一个管道,并调用fork创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样提供了两个进程之间数据流动的一种方...

2018-10-06 10:27:08 123

转载 TCP 拆包、粘包

拆包、粘包举例比如发送端要往接收端发送2个数据包1.收到2个数据包,没发送拆包和粘包情况;2.收到1个数据包,TCP把2个数据包合成1个发送给接收端了,这样应用层不能处理合成1个的两个数据包,应用层不知道两个数据包之间的分隔在哪,所以很难处理,这是粘包问题;3.收到2个数据包,但1个数据包产生了粘包(发送端的1个半数据包),另1个数据包产生了拆包(只有发送端中1个数据包的半个包),这样应...

2018-09-28 15:10:00 166

转载 tcp如何实现可靠传输

TCP提供一种面向连接的、可靠的字节流服务。   面向连接:意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。 TCP通过下列方式来提供可靠性:1、应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。 ...

2018-09-28 11:16:20 621

转载 写时拷贝

传统的fork()系统调用直接把所有的资源复制给新创建的进程。这种实现过于简单并且效率低下,因为它拷贝的数据也许并不共享,更糟的情况是,如果新进程打算立即执行一个新的映像,那么所有的拷贝都将前功尽弃。Linux的fork()使用写时拷贝(copy-on-write)页实现。写时拷贝是一种可以推迟甚至免除拷贝数据的技术。内核此时并不复制整个进程地址空间,而是让父进程和子进程共享同一个拷贝。只有在需要...

2018-09-28 10:42:34 123

转载 C语言内存布局

在C语言中,内存的主要分为下列几部分:1. Text/Code Segment 文本/代码区2. Initialized Data Segments 初始化的数据区3. Uninitialized Data Segments 未初始化的数据区4. Stack Segment 栈区5. Heap Segment 堆区  Text/Code Segment 文本/代...

2018-09-28 10:11:41 769

转载 HashMap的存储结构及原理

1、HashMap的数据结构(HashMap通过hashcode对其内容进行高速查找,是无序的)  数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。  数组 :数组的存储区是连续的,占用内存严重,故空间复杂度非常大。但数组的二分查找时间度小;数组的特点:寻址easy,插入和删除困难。  链表 :链表的储存区离散。占用内存比較宽松。故空间复杂度非常小,但时间复杂度...

2018-09-28 09:17:18 10676

转载 C++ 策略模式

作用:定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。UML图:Strategy模式将逻辑(算法)封装到一个类(Context)里面,通过组合的方式将具体算法的实现在组合对象中实现,再通过委托的方式将抽象接口的实现委托给组合对象实现将算法的逻辑抽象接口(DoAction)封装到一个类中(Context),再通过委托的方式将具体的算法实...

2018-09-27 21:47:25 236

转载 C++ 桥接模式

作用:将抽象部份与它的实现部份分离,使它们都可以独立地变化。将抽象(Abstraction)与实现(Implementation)分离,使得二者可以独立地变化。桥接模式号称设计模式中最难理解的模式之一,关键就是这个抽象和实现的分离非常让人奇怪,大部分人刚看到这个定义的时候都会认为实现就是继承自抽象,那怎么可能将他们分离呢。《大话设计模式》中就Bridge模式的解释:手机品牌和软件是...

2018-09-27 21:43:32 108

转载 C++ 适配器模式

Adapter适配器模式作用:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。分为类适配器模式和对象适配器模式。系统的数据和行为都正确,但接口不符时,我们应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。想使用一个已...

2018-09-27 21:40:23 104

转载 C++ 工厂模式实现

 简单工厂模式简单工厂模式是工厂模式中最简单的一种,他可以用比较简单的方式隐藏创建对象的细节,一般只需要告诉工厂类所需要的类型,工厂类就会返回需要的产品类,但客户端看到的只是产品的抽象对象,无需关心到底是返回了哪个子类。客户端唯一需要知道的具体子类就是工厂子类。除了这点,基本是达到了依赖倒转原则的要求。 假如,我们不用工厂类,只用AbstractProduct和它的子类,那客户端每...

2018-09-27 21:38:23 1319 1

转载 Mysql引擎:MyISAM与InnoDB差异

说到mysql的引擎就必须要提一下B+树了。计算机有一个局部性原理,就是说,当一个数据被用到时,其附近的数据也通常会马上被使用。所以当你用红黑树的时候,你一次只能得到一个键值的信息,而用B树,可以得到最多M-1个键值的信息。这样来说B树当然更好了。      B+树是在B树基础上提出的,相比于B树能够更加方便的遍历。B+树简单的说就是变成了一个索引一样的东西。 B+的搜索与B-树也...

2018-09-26 16:50:32 102

原创 C++ 多态的表现形式:重载与虚函数

多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说:允许将子类类型的指针赋值给父类类型的指针(一个接口,多种方法)。C++ 支持两种多态性:编译时多态性,运行时多态性。a、编译时多态性(静态多态):通过重载函数实现b、运行时多态性(动态多态):通过虚函数实现。多态的作用那么多态的作用是...

2018-09-26 15:14:03 1336 2

原创 Linux 文件颜色代表含义

文件颜色代表含义:蓝色表示目录;绿色表示可执行文件;红色表示压缩文件;浅蓝色表示链接文件;白色表示其他文件;黄色是设备文件,包括block, char, fifo。ps:请叫我色盲,因为csdn颜色这有这几个...

2018-09-26 09:00:18 209

原创 Linux预处理、编译、汇编、链接的处理过程分析

一、预编译 1.将所有的#define删除,并展开所有的宏定义; 2.处理所有的预编译指令,例如:#if,#elif,#else,#endif; 3.处理#include预编译指令,将被包含的文件插入到预编译指令的位置; 4.添加行号信息文件名信息,便于调试; 5.删除所有的注释:// /**/; 6.保留所有的#pragma编译指令,因为在编写程序的时候,我们经常要用到#...

2018-09-26 08:55:05 151

转载 select、poll、epoll之间的区别

(1)select==>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。(2)poll==>时间复杂度O(n)poll本质上和select没有区别,它将用...

2018-09-24 11:04:38 172

转载 IP 地址的正则表达式匹配

有关正则方面的知识,会在详细的讲解中提到。  在讲解之前,我先给大家介绍一下,ip地址的生成规则。  IP地址,是由32位数字二进制转为四个十进制的字符串组成。  怎么转化?下面讲解:      二进制:11111111111111111111111111111111      分为四部分:11111111.11111111.11111111.11111111      转...

2018-09-23 21:46:21 4023 1

转载 服务器TIME_WAIT和CLOSE_WAIT区别及解决方案

系统上线之后,通过如下语句查看服务器时,发现有不少TIME_WAIT和CLOSE_WAIT。netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'打印显示如下:TIME_WAIT 297ESTABLISHED 53CLOSE_WAIT 5     TIME_WAIT:表示主动关闭,通过优...

2018-09-23 16:12:37 726

转载 HTTP与HTTPS的区别

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。  为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安...

2018-09-22 19:21:34 318

转载 HTTP协议中GET和POST的区别

(一)、不完全正确的网红答案 GET的URL会有长度上的限制,则POST的数据则可以非常大。 POST比GET安全,ET请求的数据会附在URL之后,POST把提交的数据则放置在是HTTP包的包体中。 (二)、为什么是不完全正确的答案HTTP协议对GET和POST都没有对长度的限制:HTTP协议没有对传输的数据大小进行限制,HTTP协议规范也没有对URL长度进行限制。 而在...

2018-09-22 19:19:33 528

转载 STL queue和stack基本操作

1、stackstack 模板类的定义在<stack>头文件中。stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要的,在不指定容器类型时,默认的容器类型为deque。定义stack 对象的示例代码如下:stack<int> s1;stack<string> s2;stack 的基本操作有:入栈,如例:s.pus...

2018-09-19 09:46:06 190

原创 二叉查找算法实现

int binary_research(vector<int>& arr, int left, int right, int element){    while (left <= right)    {        int mid = (left + right) / 2;        if (arr[mid]>element)        {...

2018-09-17 10:32:21 188 1

原创 leetcode 中twoSum、threeSum、fourSum以及NSum

在leetcode中 twoSum解决思路主要是排序的数组后,以升序为例,先从右端固定一个值Fx,然后从固定值的左邻居Ni开始遍历,如果固定值Fx+Ni=target,则break结束,否则,Fx向左移动一个值,同样思路左邻居顺序移动遍历,如果要求出所有的这种组合,那么Fx+Ni=target后,不执行break,直到Fx为倒数第二数为止。当然这里也可以优化,基本上固定一个值后左邻居Ni的值已经固...

2018-09-17 10:15:53 652

转载 互斥量和信号量的区别

1. 互斥量用于线程的互斥,信号量用于线程的同步。这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。...

2018-09-15 20:36:28 530

转载 计算ip地址的子网掩码方法

方法一:利用子网数来计算:  1.首先,将子网数目从十进制数转化为二进制数;  2.接着,统计得到的二进制数的位数,设为N;  3.最后,先求出此IP地址对应的地址类别的子网掩码。再将求出的子网掩码的主机地址部分(也就是“主机号”)的前N位全部置1,这样即可得出该IP地址划分子网的子网掩码。  题型一:需将B类IP地址167.194.0.0划分成28个子网(注意每个子网的主机数为2^11)...

2018-09-15 15:35:53 1042

原创 Vector 自定义Sort

vector支持sort函数,但是默认是升序。如果要降序呢?那么可以这样操作: 方法一:升序排序之后,用 reverse 反转即可。方法二:重写sort第三个参数重写sort第三个参数:对于常见的数据类型,int、string等我们可以直接重写一个函数或者lambda表达式。重写函数:sort(begin(vec), end(vec), cmp);bool cmp(...

2018-09-15 08:45:37 2695 1

mysql-connector-c-6.1.6-win32下载

mysql-connector-c-6.1.6-win32下载。

2018-10-21

免费 虚拟串口助手

虚拟串口链接器

2017-08-10

空空如也

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

TA关注的人

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