- 博客(95)
- 资源 (2)
- 收藏
- 关注
原创 判断子集和是否等于常数t(动态规划)
算法老师留了个作业,让给出问题的一个算法,符合题目要求。其中一道题是这样的:翻译一下:给出符合O(nt)的算法,n是正整数数组a[1], a[2], ..., a[n] 的长度;t是正整数。判断数组a的子集和是否等于t?这道题一看就是用dp思想解答,但是dp一直是算法的一个难点,经过各种查询,发现网上的答案给出的解释很简单,但是不容易看懂。本文写给dp思想掌握不好的同学,记录这道题的解决方法。先分析题目:每个元素有两个不同的状态——选与不选。但是如果每个元素都进行相加判断,共需要O(2n)O(2^
2020-10-10 01:16:00
620
原创 cascade自己训练级联分类器(人脸检测)
cascade训练简介后面有详细解释,和步骤代码的实现,可能需要简单修改,建议代码自己先写着试试训练步骤下载文件包opencv。这里的opencv是指编译好的.exe文件,不是需要编译的source源码文件。建议下载3.4版本的,最新版可能训练步骤不同,这里我没有做仔细学习,毕竟新手,等以后熟练了再做解释。windows版本:官网下载iOS版本:官网下载Android版本:官网下载...
2020-04-04 22:32:35
2386
3
原创 人脸识别数据集
https://www.geticsen.cn/Index/article/content/230.html人脸学习数据集一般都在外网,不翻墙很难下载,找了好多终于找到好人存了半度网盘版本的。
2020-03-23 19:07:17
294
原创 新手入门eigenface以及python实现
网上的文章千篇一律有用的代码万里挑一毕设做人脸识别,eigenface作为人脸识别基础的算法,一定不能落下。但是我仔细找了许多文章,发现他们都是出自同一篇文章,用的字母没有标识没有注解,语言也是前后不搭,所以很难根据文章复现代码。各种找有用的文章,一周才完成这个eigenface的算法,这里不谈论深入的东西,只看实现的过程。数据库的选取与读入。我选取的是Yaleface数据库,看文件的...
2020-03-13 01:27:24
2595
6
原创 一些关于Tensorflow的基础概念
什么是tensorflow简单说来,tensorflow是一个从底层到高层的库。什么是张量张量就是客观实体的数字表示形式在tensorflow中,张量是某种相同数据类型的多维数组数据类型(整型,浮点型,字符串等)数组形状 (数组的大小等属性)tenserflow中特殊的张量tf.constant() 常量tf.placeholder() 占位符tf....
2020-02-23 16:23:37
228
原创 springcloud注册中心集群搭建
##建立springboot项目##建立springboot项目,用server添加依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc...
2019-08-19 11:11:16
598
原创 Apollo注册到自己的Eureka注册中心+配置中心集群(超详细)
##重要提示:在任何步骤开始之前,谨记下面的东西##在对apollo-master这个文件进行处理的时候,要找到文件夹scripts下的文件build.bat,苹果用户请找到build.sh,并且在最开始的时候运行上述两个文件;在工程文件夹下,src--->main--->scripts--->startp.sh,将里面的SERVER_PORT改成自己想要的端口号,修改对用...
2019-08-16 17:02:22
14459
1
原创 推荐系统之矩阵分解模型注(四)
终于到了本系列注解文章的最后一个内容,之前若有没有考虑到的内容也会在后期逐步更新,更新内容将会插在前几次和本次的文章中,科普篇 | 推荐系统之矩阵分解模型原理篇 | 推荐系统之矩阵分解模型实践篇 | 推荐系统之矩阵分解模型1 召回与精排1.1 召回一般情况下,推荐系统会推荐给用户有限个数的商品(或项目),而其中真正是用户喜欢的我们称之为相关物品。假设我们向用户推荐了10个商...
2019-06-21 10:52:49
445
原创 推荐系统之矩阵分解模型注(三)
这个看起来高大上的系列注解文章,到这个阶段便是最重要的部分了。有人说,人工智能就是概率论与统计学,实际上我也认为差不多,代码只是实现人工智能的工具,内部的原理是概率论的知识。科普篇 | 推荐系统之矩阵分解模型原理篇 | 推荐系统之矩阵分解模型实践篇 | 推荐系统之矩阵分解模型1 残差平方和1.1 残差所谓残差,就是实际值与估计值的差。百度百科说,如果回归模型正确的话,...
2019-06-20 20:27:17
490
原创 推荐系统之矩阵分解模型注(二)
腾讯这三篇文章,逐渐深入,为我们初步讲解了推荐系统之矩阵分解的方法。科普篇 | 推荐系统之矩阵分解模型原理篇 | 推荐系统之矩阵分解模型实践篇 | 推荐系统之矩阵分解模型1.矩阵分解算法经典的矩阵分解算法有:余弦相似度(Cosine Similarity)、皮尔逊相关系数(Pearson Correlation)、欧氏距离(Euclidean Distance)、jaccar...
2019-06-20 00:21:42
314
原创 推荐系统之矩阵分解模型注(一)
考试月占据了我全部时间,现在专业课终于考完了,还剩几个大作业和几个专业选修课的考试,其中一个就是人工智能。人工智能要作一篇报告,分享自己所学的人工智能领域的知识,时长大概15min。恰逢腾讯技术微信公众号出了三篇推荐系统的讲解,我就打算以这个为原型做一次分享。可是看腾讯的三篇文章,我是一头雾水,许多数学知识没有学过,严重阻碍了对文章的理解。经过大量努力,终于理解了其中的核心内容,现在写一篇博客整合...
2019-06-19 22:27:30
364
原创 二十三种设计模式——模板方法模式
前页:设计模式总述模板模式,简单说,就是基类(一个抽象类)存在已实现和未实现的方法,已实现的方法是通用的,未实现的方法是根据环境不同而不同的。模板类比较容易理解,举个例子:我们都是码农,写一个java代码步骤是什么?配置jdk 下载eclipse、myeclipse、netbeans几个或者一个编译器 打开编译器 编写代码我们简单分析一下:配置jdk是所有程序员都需要做的,这是...
2019-05-06 19:05:46
190
原创 二十三种设计模式——外观模式
前页:设计模式总述当我们设计软件的时候,难免要分工合作。比如A开发服务器。B开发客户端。这种情况下,就有一个很常见的问题,A开发的服务器如何与B开发的客户端联系起来?一种方式就是,服务器端造好各种类,供客户端调用。这样,客户端不必知道服务器端如何实现的这些类和方法,也能使用到服务器提供的方法。举个例子,我们要吃饭,就要买材料,烧水,热锅,切菜,做菜,吃饭。但是如果我们去餐厅,想吃什么告诉服...
2019-04-30 16:50:16
178
原创 二十三种设计模式——原型模式
前页:设计模式总述我们在编程的时候,常常遇见这种情况:大量相同的类进行初始化,需要用到大量的构造函数。最基本的例子:while(count-- > 0){ String a = new String("asd");}这就是最简单的String类的构造函数。当我们频繁创建该对象时,会耗费资源且较耗时,因此,字这种情况下,java给出了一种方法,我们可以实现cloneab...
2019-04-29 17:09:55
500
原创 Java为什么要重写equals方法和hashcode方法(新手场)
这个得从盘古开天说起。(篇幅较长)java中“==”与equals方法的区别 hashcode方法 为什么java中在重写hashmap的时候要重写二者一、 java中“==”与equals方法的区别先看测试代码:public class TestHashMethod { public static void main(String[] args) { String a ...
2019-04-28 19:53:25
1292
原创 二十三种设计模式——适配器模式
前页:设计模式总述所谓适配器模式,就是连接两个不兼容的接口。想想手机适配器,手机可接受电压可不是220V,而家用电压是220V,这就需要适配器兼容二者,给手机充电。同理,适配器模式就如同此例。说来,适配器模式有三种:类适配器 对象适配器 接口适配器实现适配器模式需要哪几种角色呢?很简单:目标角色(插座),源角色(手机),适配器角色(适配器)假设,我现在有一个手机,是typ...
2019-04-24 10:28:41
218
原创 对swift开发中的unwinding segue的一些理解
swift是比较小众的开发语言,与苹果系列的APP对应。此外,swift还是一门新生的语言,因此,在swift学习的道路上,没有很多前辈帮忙采坑,我们在学习的时候必须长期总结积累经验。在一个小项目中,我就被swift的unwinding segue搞糊涂了。情况是这样的:这个小程序写完后,效果应该是像记事本一样。可是当我点击tableView的时候,他会在后面附加值,而不是去...
2019-04-23 21:58:20
355
原创 二十三种设计模式——观察者模式
二十三种设计模式总述当对象间存在依赖关系时,使用观察者模式进行通知其依赖项。比如:C++中的虚函数的实现。当子类重写了虚函数的时候,其虚函数表中该虚函数的的地址就会改变。但是,这不是典型的观察者模式,因为编译器知道地址的改变,但是父类并不知道。实际上,应该是父类的对象发生改变,子类的观察者也会被通知到,这就是观察者模式。举个生活中的例子。老师给学生上课,学生去上课,老师就是被观察者,老师讲...
2019-04-23 09:34:43
256
原创 二十三种设计模式——建造者模式
前页:设计模式总述建造者模式(Builder Pattern),是通过对对象一个一个创建,最终构成一个复杂的对象。我们在做开发的时候,有时候会面临很复杂的一个对象,怎么办?那就先不考虑那么复杂的情况,从简单的对象逐步构建。比如造房子的时候,我们不需要一下造出来摩天大楼,但是我们可以从地基开始,一层一层楼盖,最终建造成摩天大厦。再比如,被熟知的KFC套餐,你可以买“可乐+牛肉堡”套餐A,...
2019-04-18 10:38:15
212
原创 二十三种设计模式——单例模式
前页:设计模式总述单例模式是java中最简单的一种设计模式。所谓单例模式,就是整个程序只允许有一个类的实例,并且向整个系统中提供此事例。有点像C++中被定义为static的变量。比如当我们某个程序只有一个关于打印机的端口,那么我们必须将这个端口设计为单例的,因为如果当多台电脑使用这个打印机的时候,只允许第一台电脑对此进行操作,否则打印机将引起混乱,单例模式特点单例类只能有一个实例。...
2019-04-16 17:10:09
229
原创 二十三种设计模式——抽象工厂模式
上页:设计模式总述我们之前知道了什么是工厂模式,简言之,就是根据参数不同利用不同的类创建不同的对象。实际上,抽象工厂模式和工厂模式相似,只不过是这个工厂中除了生产某种商品,还会生产另一种商品。举个例子:越南代工厂是Nike,Adidas两个工厂的球鞋生产地。现在我们假设球鞋除了品牌都是一样的,那么Nike,Adidas就是工厂类,而越南代工厂就是Nike,Adidas的基类,球鞋...
2019-04-16 14:16:25
131
原创 二十三种设计模式——工厂模式
前页:二十三种设计模式总说工厂模式(Factory Pattern):创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。每次看定义的时候都是一头雾水,实际上就是类似于函数的重载而已。通过菜鸟教程,总结出使用工厂模式的几种方法:实现接口。C++中没有接口这个概念,C++中接口的实现是通过抽象类完成的。如果不知道什么是抽象类,请看:抽象类与纯虚函数。...
2019-04-15 16:47:28
187
原创 二十三种设计模式
设计模式,没听过的人肯定一脸懵逼,正如我最初被问到这个问题一样。我最开始一个都答不上来,所以立志总结23种设计模式。什么是设计模式?设计模式就是利用前人的经验,总结出的可以被反复使用、多数人知晓、经过分类的、代码设计的总结。使用设计模式设计程序有什么好处?提升代码可重用性。 提升代码可靠性。 提升代码的可读性。实际上,设计模式正如一个代工厂,操作员不必理解如何制造工厂中的机...
2019-04-15 15:03:19
229
原创 swift方法performSegue(withIdentifier identifier: String, sender: Any?)
在学习swift开发的路上,做个性格测试的app,结果有一个方法没见过,导致出错很久没发现错误原因。现在回头分析一下这个方法,供自己和他人参考学习。func nextQuestion(){ questionIndex += 1 if questionIndex < questions.count { updateUI() ...
2019-04-08 16:49:45
3228
原创 swift关键字as,as!,as?
在学习swift开发,其中有许多在其他语言中没见过的东西,比如关键字as。 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "ResultsSegue" { let resultsViewContro...
2019-04-07 21:16:16
3653
原创 简述虚函数表
前段时间我在博客中简单地说了下C++的虚函数,所谓虚函数,就是C++实现多态性的方法。那么编译器是如何识别虚函数的呢?据百度百科描述,C++并未规定用何种方法实现虚函数,但是大部分编译器厂商都选择使用虚函数表这种方法,那到底什么是虚函数表???虚函数表,称为V-Table。虚函数表是一片连续的内存区域,每个内存单元存放着JMP指令地址。看到这里,可能会比较懵逼,啥是内存单元,啥是JM...
2019-04-04 18:00:28
6420
5
原创 深拷贝与浅拷贝
前面说到了拷贝构造函数,但是情况并未列举完。我怕文章太长就分开写,看的舒服。有一种情况,那就是当构造函数中有指针操作,怎么办?#include <iostream>using namespace std;class A{private: int *a;public: A(){ a = new int[100]; cout...
2019-04-03 09:08:28
830
5
原创 构造函数与拷贝构造函数
拷贝构造函数和构造函数不能分开说,他们都是初始化对象的一种方法。但是我们这里用构造函数辅助说明拷贝构造函数,主要说说拷贝构造函数的声明,用途和使用注意事项。众所周知,构造函数是一个初始化类对象的函数,即使不显示调用,编译器也会隐式调用构造函数初始化类对象。同样的,拷贝构造函数是一种特殊的构造函数,目的也是初始化类对象,同样在不声明的情况下也会隐式调用该函数。而隐式调用拷贝构造函数的时候,我们称...
2019-04-03 09:07:15
8838
2
原创 堆栈-操作系统(二)
接上文。这篇文章没有涉及到最根本的原理,只是浅谈。毕竟只是记问之学,没有深入研究过,做此章供大家参考。上文我们提到了栈和堆存放不同类型的变量,但是有部分问题仍未解决。这篇文章将简说内存分配的其他空间。代码段:存放代码的空间,这里的代码指的是二进制代码。比如你写了一个hello world的程序,总得有一个地方存放这段程序,而普通c语言代码存放在磁盘中,可是经过编译链接后的代码存放在哪...
2019-04-02 08:45:28
850
1
原创 堆栈-操作系统(一)
很早就想写一篇文章,关于操作系统中的堆栈。说是堆栈,其实就是操作系统如何处理代码的,即如何为代码中的各种类型的变量、常量、方法体(函数体)等等分配内存空间。了解这些内容,可以帮助我们做一些判断:帮助我们在程序出错时更快找到错误地点。 帮助们尽可能利用效率高的方式编程。接下来开始浅析操作系统中的堆栈。堆:由程序员申请的一片数据区域,并在程序执行完之前由程序员手动释放。类似于链表结...
2019-04-01 18:32:44
1924
1
原创 简述虚析构函数与纯虚析构函数
基础知识:C++中,一个类在建成时,需要有构造函数初始化。即当一个类的对象在生成时,会先调用构造函数初始化,再执行接下来的其他函数。而在一个类的对象指针被释放的时候,会调用析构函数。即使析构函数不被声明,也会隐式调用析构函数。那么,当一个派生类继承了一个基类,这时候调用析构函数,会发生什么呢?#include <iostream>using namespace std;...
2019-03-25 19:56:51
1706
1
原创 C++纯虚函数
一般来说,许多时候基类并不能确定函数的实现方法,只能确定函数的功能。但是函数调用的时候必须要用到该函数。这种情况下,C++提供了一种机制,成为纯虚函数,属于虚函数的一种,体现了面向对象的多态性。#include <iostream>#define PI 3.14using namespace std;class Calculate{ virtual double getP...
2019-03-25 18:31:38
2948
原创 C++重载与多态
问:函数重载和函数多态是什么关系?答:重载包括多态吧,重载还有运算符重载。。。。。。。于是,尴尬了。这篇文章说一下重载与多态的区别。其实,重载和多态无论从本质还是从表面上都是不同的。重载overload:函数名相同,但是函数参数不同。调用时根据参数的不同决定调用哪一个函数;多态:函数名相同,函数形参也相同。调用时根据函数类型是虚函数还是普通成员函数决定调用哪一个。所...
2019-03-25 18:03:43
3652
1
原创 C++虚函数概念及使用(基础)
所谓基础不牢,地动山摇。当面试官问到我虚函数和虚析构函数的时候,我真的一点都记不起来了,于是胡说八道,出丑万分。今天就总结一下虚函数的一些内容吧。依照我的习惯,我们先看几个问题:什么是虚函数? 什么是多态性? 多态性是怎么实现的?以上三个问题我完全搞混了,所以面试当场气氛很尬。接下来抱着解决问题的态度来复习一下这些知识点,希望以后能记住。什么是虚函数?在某基类中...
2019-03-25 14:53:38
5927
5
原创 简说C++中define与const的区别
依旧是由于腾讯的面试,我意识到自己的渣。。。面试官问我宏定义的define和const的区别,我只回答了宏定义是预编译,所以速度上比const更快一些,剩下的没回答什么。虽然我也知道define不仅可以定义数,还可以定义函数,但是当时确实没有往这个方向想,所以我想在这里总结一下,为以后的面试和开发做准备。在说区别之前,有几点背景知识是我们需要掌握的。(截图说话,侵删)这是C语...
2019-03-20 21:50:35
500
原创 swift关键字mutating
学校开课ios开发,人生中第二个ios程序就是苹果开发手册中的ApplePie。按照开发手册写肯定没问题,但是其中有许多东西不理解,其中一个函数: mutating func playerGuessed(letter: Character){ guessedLetters.append(letter) if !word.contains(letter) { ...
2019-03-20 09:36:21
431
原创 堆的基本性质与排序算法的实现
前段时间申了腾讯移动开发暑期实习,昨天一轮面试被问到堆的问题(面试官人很好~)。这里的堆是数据结构中的堆,而不是操作系统的堆。然而,堆排序时间太久了,忘掉了一些基本概念,于是面试不出意外是挂掉了(当然不止堆没答上来)。这里总结一下堆的性质,为以后申公司做好准备吧!腾讯面试官问了我一个问题,说100个数字存放在堆中,最差时间找到这个数字是多少。我不确定,先是回答了一个O(nlgn),后来他要具体...
2019-03-19 22:19:42
1258
原创 快速排序简说与实现
大三了,该找实习了。但是大二学的各种算法已经忘完了,在这里复习一下,做个笔记。我们要解决几个问题:什么是快速排序? 快速排序的性能如何? 快速排序是怎么实现的?我们先看第一个问题:什么是快速排序? 快速排序是一种运用了分治思想的排序,是一种内排序(数据存储在内存中的排序)。所谓分治思想,就是分而治之,这类思想在排序算法中拥有很高的使用率,得益于它的时间复杂度。...
2019-03-18 15:38:16
310
原创 11. 盛最多水的容器(中等题)
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(...
2018-09-16 20:18:59
551
原创 7. 反转整数(简单题)
给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。这道题说简单也简单,说难...
2018-08-25 15:22:43
5293
1
self_trian_cascade.rar
2020-04-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅