自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

转载 添加环境

参考 https://stackoverflow.com/questions/37085665/in-which-conda-environment-is-jupyter-executing需要安装:conda install ipykernel使用:首先激活对应的conda环境source activate 环境名称将环境写入notebook的kernel中python -m ip...

2019-06-18 22:05:10 168

原创 P2P违约预测(4)

P2P模式发展现状P2P的英文全称,即“Peer to Peer Lending”。它是一种通过互联网实现的个体直接对个体的借贷模式,可以将其定义为资金需求个体和资金盈余个体利用第三方网络平台直接实现资金的融通。在此过程中,第三方平台仅为提供收集、公布借贷信息,匹配资金借贷双方以及规范操作流程之用,实际上并不参与资金的融通。另外,将其定义为个体,是因为其面向社会大众,不局限于传统银行往往只服务于...

2019-06-15 10:53:19 378

原创 P2P违约预测(3)

国内文献综述国内学者已经通过多个角度阐述了P2P贷款信用风险问题,研究角度主要是基于平台自身运作模式和国内监管机制方面。姚凤阁和隋昕(2016)抓取拍拍贷公司的相关历史借贷数据、将平台借款者的信用评级、融资利率、融资总额及期限等作为相关变量建立神经网络,剖析了上述各变量对贷款人不守约带来的风险影响。陈冬宇(2014)从借款人角度,以申请借款者自愿披露信息的意愿、披露信息的实际质量、借款人的实际资...

2019-06-15 10:51:15 885

原创 P2P违约预测(2)

研究目的和意义有别于传统借贷模式,P2P模式通过对审核过的基本情况及信用评级等的评估,直接达成交易。这种形式得益于大数据、云计算的发展,极大简化了传统银行借贷信贷审核、放宽审批等手续流程。这种网络借贷模式无需担保抵押,以信用借贷为主。在P2P借贷流程中,我们可以找到三方角色,分别是借款人、投资人以及平台。首先借款人需要在平台上认证,认证过程包括提供身份证明、学业水平、收支情况、就业状况、资信程...

2019-06-15 10:48:50 439

原创 P2P违约预测

研究背景金融流动性是保证社会稳定、经济发展的重要动力,更是社会活动中不能缺少的重要功能。金融应始终保持充足的活力,完成资源在不确定情况下的最优配置。在今天中国经济已经发展到“新常态”的情况下,各行各业的发展、创新都离不开金融体系的支撑,也就是说,我国金融体系,换言之我国金融系统和金融工具应当同转变经济增长方式同步成长,甚至先行一步。然而在我国市场经济中,最能体现出发展生机、最具有创造力的部分——...

2019-06-15 10:46:38 191

原创 操作系统——内存管理(四)

在多道程序环境下,要使程序运行,必须先为之创建进程。而创建进程的第一件事,便是将程序和数据装入内存。如何将一个用户源程序变为一个可在内存中执行的程序,通常都要经过以下几个步骤:首先是要编译,由编译程序(Compiler)将用户源代码编译成若干个目标模块(Object Module);其次是链接,由链接程序(Linker)将编译后形成的一组目标模 块,以及它们所需要的库函数链接在一起,形成一个完整的

2017-03-06 17:26:17 327

原创 操作系统——进程同步(三)

进程同步中很著名的问题就是生产者-消费者问题,描述如下: 有一群生产者进程在生产产品,并将这些产品提供给消费者进程去消费。为使生产者进程与消费者进程能并发执行,在两者之间设置了一个具有 n 个缓冲区的缓冲池,生产者进程将它所生产的产品放入一个缓冲区中;消费者进程可从一个缓冲区中取走产品去消费。尽管所有的生产者进程和消费者进程都是以异步方式运行的,但它们之间必须保持同步,即不允许消费者进程到一个空缓

2017-03-06 16:22:27 401

原创 操作系统——进程控制(二)

进程控制一般是由原语来实现的,原语是由若干指令组成,原语是“原子操作”,原子操作在管态下执行,常驻内存。 管态就是特权态,CPU执行状态有管态和目态两种,当CPU处理系统程序的时候,CPU会转为管态,CPU在管态下可以执行指令系统的全集(包括特权指令与非特权指令)。可以这样理解:当一个用户进程在运行过程中,它一直是目态,当需要系统服务时,就必须从当前PC运行的用户地址空间转移到内核代码地址空间,这

2017-03-05 17:14:51 454

原创 操作系统——进程以及PCB介绍(一)

进程基本概念:进程的产生是因为为了使程序能并发执行,且为了对并发执行的程序加以描述和控制。 进程的结构:程序段、相关的数据段和 PCB (进程控制块Process Control Block)。 进程跟程序是不同的,进程是动态的,程序是动态的,进程有创建,执行,消亡,所以进程实体是有生命周期的,而程序只是一组有序指令的集合。 可以总结一下: (1) 进程是程序的一次执行。 (2) 进程是一

2017-03-05 15:48:05 9566 2

原创 栈和队列(二)

由两个栈实现队列import java.util.Stack;public class sAD02 { public Stack<Integer> stackPush; public Stack<Integer> stackPop; public sAD02(){ stackPush = new Stack<Integer>(); stackPop

2017-02-20 15:02:23 234

原创 栈和队列(一)

找出最小值public class sAD01 { private Stack<Integer> Data; private Stack<Integer> Min; public sAD01(){ this.Data = new Stack<Integer>(); this.Min = new Stack<Integer>(); }

2017-02-20 15:01:09 220

原创 MINIX源码ansi.h

/* The <ansi.h> header attempts to decide whether the compiler has enough * conformance to Standard C for Minix to take advantage of. If so, the * symbol _ANSI is defined (as 31459). Otherwise _ANS

2017-02-20 14:56:30 559

原创 字符串问题(四)

判断两个词是否为旋转词 public boolean isRotation(String a, String b){ if(a == null || b == null || a.length() != b.length()){ return false; } String str = b.concat(b);

2017-02-06 16:13:47 179

原创 字符串问题(三)

去掉字符串中连续出现K个0的子串 public static String remove(String str, int k){ if(str == null || k < 1){ return str; } char[] cc = str.toCharArray(); int count = 0;

2017-02-06 16:11:22 223

原创 字符串问题(二)

字符串中的数字求和 str = “A1CD2E32”,返回 36。 str = “A-1B–2C–D6E”,返回7。 public static int numSum(String str){ if(str == null){ return 0; } char[] charArr = str.toCharArray()

2017-02-06 15:24:35 234

原创 字符串问题(一)

判断两个字符串是不是互为变形词 str1 = “123”,str2 = “231”,返回true。 str1 = “123”,str2 = “2331”,返回false。 public boolean isDeformation1(String str1, String str2){ if(str1 == null || str2 == null || str1.lengt

2017-02-06 14:28:37 235

原创 设计模式(十三)——享元模式

系统中对象数目太多,有些对象是相同或是相似的,享元模式就是实现对象复用。 一个文本文档中有大量的字符串,如果每个字符串都用一个单独对象来表示,那么整个的运行开销太大了,享元模式就是解决这样的问题,逻辑上每个出现的字符串都有一个对象与之对应,然而在物理上他们共享同一个享元对象,这个对象可以出现在同一个文档的不同地方,相同的字符串对象指向同一个实例,储存这个实例的对象可以称为享元池。 享元模式组成:

2017-01-10 21:26:09 313

原创 设计模式(十二)——代理模式

在某些情况下,一个客户不想或是不能直接引用一个对象,此时可以通过一个称之为“代理”的第三者来实现间接引用,代理可以在客户端和目标对象之间起中介作用,并且通过代理对象去掉客户不能看到的内容和服务或是添加客户需要的额外服务。 代理模式组成:抽象主题角色,代理主题角色,真实主题角色。//抽象主题角色public interface AbstractPermission { public voi

2017-01-10 20:30:38 281

原创 设计模式(十一)——外观模式

外观模式可以理解为为系统增加一个外观类,这个外观类就是类似于网站的主页,相当于用户不用再与网站的子网页交互,而只需要与主页交互,可以理解为一个总的控制中心,用户和子系统的复杂关系由外观角色来实现,从而降低了系统的耦合度。 外观模式组成:外观角色,子系统角色,客户端。//子系统角色public class AirCondition { public void on(){ Sy

2017-01-10 19:32:26 244

原创 设计模式(十)——装饰者模式

装饰者模式可以在不改变一个对象本身的基础上给对象增加额外的新行为,通过继承机制可以实现这种功能,但是这种方法是静态的,用户不能够控制增加行为的实现和时机。其实按照设计模式的原则也不该使用继机制,而是使用关联机制。 装饰者模式组成:抽象构件,具体构件,抽象装饰类,具体装饰类。 通过装饰类中包含构件对象,再通过递归,就能够实现对构建类行为的增加。//抽象构件类public abstract cla

2017-01-09 17:55:45 216

原创 设计模式(九)——组合模式

组合模式比较容易理解,想到组合模式就应该想到树状结构图,组合模式描述了如何将容器对象(非叶子节点)和叶子对象(叶子节点)进行递归组合,使得用户在使用时无需对他们进行区分,可以一致的对待容器对象和叶子对象,这就是组合模式的动机。 组合模式核心在于引入了一个抽象类,它既是叶子类父类又是容器类父类,客户端针对抽象构建进行编程,无需知道它到底代表容器还是代表叶子,可以对它做统一处理。 组合模式组成:抽象

2017-01-09 16:25:20 262

原创 设计模式(八)——桥接模式

将抽象部分和它的实现部分分离,使他们都可以独立地变化。 组成:抽象类,扩充抽象类,实现类接口,具体实现类。 桥接模式最大的作用就是减少了类的个数,很重要的就是脱耦,将抽象化和实现化之间的耦合解脱开,将两个角色之间的继承关系改为关联关系。桥接模式中所指的脱耦就是将抽象化和实现化之间使用组合或聚合关系而不是继承关系,从而两部分可以相对独立的变化。//实现类接口public interface Co

2017-01-08 21:51:10 189

原创 设计模式(七)——适配器模式

将现有接口转化为客户类期望的接口,这样保证了对现有类的重用。在适配器模式中可以定义一个包装类,包装不兼容接口的对象,这个包装类指的就是适配器。当客户端调用适配器的方法时,在适配器类的内部将调用适配者类(被包装的对象)的方法,而这个过程对客户类是透明的,客户类并不直接访问适配者类。因此,适配器可以使由于接口不兼容而不能交互的类可以一起工作,这就是适配器模式的模式动机。 适配器模式包含:目标抽象类,适

2017-01-08 21:20:03 171

原创 设计模式(六)——单例模式

单例模式提供了一种方式使得对象唯一化,一个类只能创建唯一一个实例。单例模式只包含一个Singleton(单例类),在单例类内部实现只生成一个实例,通过一个私有的构造函数,确保用户无法通过new关键字直接实例化单例类,而是通过一个静态的工厂方法来检测实例是否存在并实例化自己,然后储存在静态成员变量中,以确保只有一个实例被创建。//一般结构public class Singleton { pr

2017-01-08 17:42:58 298

转载 设计模式(五)——原型模式

原型模式就是通过复制对象自身,从而克隆出多个与原型对象一模一样的对象。 原型模式包含三个组成:抽象原型类,具体原型类。 浅克隆与深克隆

2017-01-07 18:03:58 222

原创 设计模式(四)——建造者模式

建造者模式是用于创建一个包含多个组成部分的复杂对象,可以返回一个完整的产品给用户。对于用户无需关心这个对象是如何创建出来的,直接使用即可。 目的:用于创建复杂对象,将复杂对象的创建与表示分离,使得同样的构建可以创建不同的表示。 组成:抽象创建者,具体创建者,产品角色,指挥者。//抽象创建者public abstract class MealBuilder { protected Meal

2017-01-07 16:39:59 221

原创 设计模式(三)——抽象工厂模式

抽象工厂方法是工厂方法的泛化版,工厂方法是一种特殊的抽象工厂方法。抽象工厂方法中,一个具体的工厂可以生产多个具体的产品。 抽象工厂方法同样包含四个角色:抽象工厂,具体工厂,抽象产品,具体产品。//抽象产品public interface Television { public void play();}//具体产品public class HaierTelevision implem

2017-01-07 15:44:04 206

原创 设计模式(二)——工厂方法

简单工厂有一个问题就是增加产品类型时违背了开闭原则,工厂方法解决了这一问题。工厂方法包含四个部分:抽象产品,具体产品,抽象工厂,具体工厂。 工厂方法的技术核心是多态,通过多态的使用,工厂方法保留了简单工厂的优点,解决了它的缺点。工厂方法的核心是一个抽象工厂类,而简单的工厂模式将核心放在了具体类上。对比可以发现如果简单工厂需要增加一个新的产品类时,必须要改变整个工厂类,这样就不符合开闭原则了。而工厂

2017-01-06 21:25:26 233

原创 设计模式(一)——简单工厂

简单工厂模式的优点: (1)工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅“消费”产品,简单工厂模式通过这种做法实现了对责任的分隔,它提供了专门工厂类用来创建对象。 (2)客户端无需知道所创建具体产品的类名,只需要知道具体产品类对应的参数即可,对于一些复杂的类名,通过简单工厂模式可以减少使用者的记忆量。 (3)通过引入配置文件,

2017-01-06 20:27:16 211

原创 Java基本算法——排序(一)

首先是一些排序的基本模块import java.util.*;public class Example { public void sort(Comparable[] a) { //写具体排序方法 } protected static boolean less(Comparable v, Comparable w) { //比较两个元素的

2016-12-11 21:20:27 257

原创 java构造器

作用:构造器是一种特殊的方法,用于创建类的实例,构造器最大的用处就是在创建对象的时候就执行初始化,如果没有构造器,那么系统就会为属性进行默认初始化,这种初始化就是全部是0,false,null,如果我们想要改变初始化的值那么就要使用构造器。 以下是一段很经典的测试代码public class Test{ public String name; //setter,getter没写

2016-09-17 22:46:08 231

原创 java中抽象类和接口的区别

对于刚刚学习的楼主,很费解为什么有了抽象类还有弄个接口,一下为一点点总结和心得 抽象类: 包含抽象方法的类一定是抽象类,无论是是抽象方法还是抽象类必须在抽象方法或是抽象类的前面加上abstract,抽象类没有具体实现的方法,所以不能用抽象类创建对象。但是请注意一点就是,抽象类不一定含有抽象方法。 抽象类的用途基本是为了继承,因为抽象类是不能直接用来创建对象的,可以说抽象类就是为了继承而存在的。

2016-09-10 21:42:23 299

原创 Java中的数据储存位置

数据需要储存位置,java储存数据的位置如下: 1,寄存器:速度最快,在处理器内部,不过寄存器数量很少,所以寄存器是根据编译器分配,我们没有控制权,JVM的寄存器长度均为32位 2,栈stack:位于常规RAM随机访问存储器内,但是通过它的堆栈指针获得处理器的直接支持,堆栈指针往下移动会创建新的内存,如果往上移动则会释放那些内存,这是一种特别快特别有效的数据保存方式。速度仅次于寄存器(常用于存放

2016-09-09 21:30:35 726

原创 三色旗问题中的快排应用

今天在看三色旗问题的时候觉得这个问题用的就是快排思想,然后查了一下,Letcode上正好有这样类似的一道题目下面是Letcod上面的这个问题的题目75.Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the

2016-05-17 17:37:07 873

原创 快排的方法与代码

博主在写快排之前,写好了冒泡,选择,插入,觉得他们三个都属于那种很直观,操作很简单的排序,但是复杂度都很大,计算机里面,越是方法简单,复杂度就越是高,所以就看了看快排,我觉得,快排里面最麻烦的就是怎么理解它的思想,其实它的代码很少,比插入排序还要少一些,但是理解难度大一些,因为它的里面有两个递归,凡是有递归的地方一般都好麻烦,但是借助图像大家也还是可以试着理解,理解不了就先记住代码,之后多用几遍就好

2016-04-22 11:55:01 368

原创 简单排序算法

第一个:冒泡排序: 简单来说,就是不停的与旁边的比较,然后交换,总之运算的交换次数挺多的,后面再来比较几种排序方法void bubblesorthead(int* pData, int Count){ int itemp; for(int i = 0; i < Count - 1; i++) { for(int j = 1; j <= i + 1; j +

2016-04-21 21:48:01 212

原创 大端机,小端机入门级理解

大端机,小端机其实说的就是一种存储方式,是数据在内存中存储的方式。大家可以想一想,计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。int 是4字节,32bit,大于一个字节,另外,对于位数大于8位的处理器,例如32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着如何将多个字节安排的问题。因此就导致了大端存储模式和小端存储模式。 例如一个16bit的sho

2016-04-21 15:11:01 1034

原创 C位运算

以下转自百度百科 程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。 转自http

2016-04-17 21:16:17 300

原创 unsigned关键字的学习

在C语言里面有一个关键字unsigned,这个关键字是用来声明无符号类型。一个 32 位的 signed int 类型整数其值表示法范围为: – 2³¹~ 2³¹-1 ;一个 32 位的 unsigned int 类型整数其值表示法 范围为: 0~ 2³² -1,这是为什么呢,我们来仔细看看,首先一个int型是占4bit,也就是4 * 8个二进制数字,然后由于它是signed所以,第一个是用来表示

2016-04-17 20:48:55 649

原创 int *const p与int const *p与const int *p与const *int p

首先,最好解决的就是const int p,这种写法是错的,语法错误,没有这种写法,剩下三种再来做解释。、首先解释const:可以定义const常量,具有不可变性。例如:const int Max=100; Max++会产生错误;const和指针一起使用是C语言中一个很常见的困惑之处,在实际开发中,特别是在看别人代码的时候,常常会因为这样而不好判断作者的意图,const只修饰其后的变量,至于cons

2016-04-14 17:51:01 531

空空如也

空空如也

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

TA关注的人

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