自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 朴素贝叶斯分类

摘自写在公司内部的wiki要解决的问题:表中增加字段classification,有四个取值:0:初始值,未分类、1:positive、2:normal、99:negativereview submit前,由朴素贝叶斯分类器决定该条review的flag属于negative还是positive 分类器分为两部分训练脚本

2017-09-18 11:02:50 462

原创 cnn分类

最近做项目要对所有评论内容做分类,分为正面和负面两个维度,一开始我自己写了个朴素贝叶斯分类器,准确率只有60%(测试数据,线上数据的结果应该更理想),后来也是cto大大亲自出马,找了一个cnn的分类器,在此基础上加以改造,将业务逻辑嵌了进去,出于好奇,也是最近deep learning比较火,看了一些资料,结合这个分类器,对分类器做了什么做一个小结。源码在此 https://githu

2017-08-10 18:01:31 3198

原创 JAVA 动态代理

关于JDK Proxy的动态代理使用,网上有很多文章,本文就不再写了,我想从几个问题出发,总结一下JDK的动态代理newProxyInstance三个参数起了什么作用JDK的动态代理为什么是基于interface的而不是基于类的动态代理是如何进行分派转发的 动态代理其实就是将你要委托的类和你的代理处理器(即InvocationHandler的实现)编织成一个全新的代理类,这个过程由JVM去做

2017-06-30 13:48:09 414

原创 JAVA 线程池

池化资源使得资源可以重复利用,提高响应速度,例如常见的数据库连接池。我们不用手动创建和销毁线程,池会帮我们管理,另外还可以对线程监控线程类相关的UML类图最重要的是中间那个ThreadPoolExecutor,简单说下ScheduledThreadPoolExecutor和ForkJoinPoolScheduledThreadPoolExecutor是一个可调度的线

2017-06-28 23:05:28 303

原创 操作系统原理读书笔记之死锁

出现死锁的原因对资源的争夺会导致死锁,造成资源争夺有多方面的原因,比如资源本身数量有限、错误的使用锁和信号量控制有以下四个必要条件互斥使用(资源独占):一个资源在某一时间点只能给一个进程使用占有资源且等待:在保持对原有资源占有的情况下,去申请新的资源不可抢占:资源的申请者不能强行从资源占有者手中夺取资源,只能由资源占有者资源释放循环等待:存在一个进程等待队列{P1,P2,...

2017-05-22 22:03:36 590

原创 操作系统原理读书笔记之文件系统

磁盘空间管理有三种管理方式,对应三种数据结构位图,每一位对应一个物理块,显而易见,位图本身会占用大量空间空闲块表,将所有空闲块记录在一个表中,每个表项纪录起始块号和空闲的块数

2017-05-21 22:37:30 4486

原创 操作系统原理读书笔记之虚拟存储技术

虚拟存储技术是指:当进程运行时,先将其中一部分装入内存,另一部分暂留在磁盘,当要执行的指令或访问的数据不在内存时,由操作系统自动完成将他们从磁盘调入内存的工作虚存与存储体系的关系虚存构建在存储体系之上,把内存和磁盘有机的结合起来使用,从而得到一个容量很大的内存,由操作系统协调各存储器地址保护机制确保每个进程有独立的地址空间确保进程访问的地址不越界,这项功

2017-05-09 23:14:54 4516 1

原创 操作系统原理读书笔记之内存模型

地址重定位内存可直接寻址的是物理地址,物理地址是固定的;相对的有逻辑地址(虚拟地址),用户程序经过编译汇编后形成目标代码,目标代码采用的首地址为0,其余地址都对应于首地址而编址。而逻辑地址和物理地址的相互转化称为地址重定位静态重定位当用户程序加载到内存时,一次性实现逻辑地址到物理地址的转换,当程序位置改变,地址需要重新计算动态重定位在进程执行过程中进行地址变换,即逐条指令执行时

2017-05-08 20:47:07 1711

原创 操作系统原理读书笔记之进程间通信IPC

基本通信方式消息传递共享内存管道PIPE套接字socket远程过程调用套接字和远程过程调用属于分布式系统采用的方式,这里只介绍前三种方式消息传递发送进程调用send原语send(destination, message)陷入内核,操作系统复制消息到消息缓冲区操作系统唤醒接收进程,将消息缓冲区内容挂到接收进程的消息队列指针接收进程读取消息队列内容,调用receiv

2017-05-04 18:46:00 413

原创 操作系统原理读书笔记之进程同步

进程同步机制一、信号量及PV操作信号量是一个特殊变量,用于进程间传递信息,通常是一个整数值,由Dijkstra提出,最初用于解决互斥问题,信号量只有两个(0,1),称作二元信号量;后来推广到多值,用于解决同步问题定义如下:struct semaphore{ int count; queueType queue;}s;其中count用于传递信息,进程可以挂到队列

2017-05-03 10:20:49 626

原创 操作系统原理读书笔记之进程互斥

临界资源:表示该资源一次只允许一个进程使用,也叫互斥资源或共享变量临界区(互斥区):各个进程对某个临界资源实施操作的程序片段解决进程互斥的方法软件方案:1、加锁(对free加锁)...//封装成原语lock()while(free);free = true;//lock end//临界区//解锁free = false;...2、DEKKER算法

2017-05-02 22:20:10 903

转载 JAVA类加载机制

最近看了不少博文,先记下来,以后总结类加载机制

2017-03-24 14:24:15 356

原创 JAVA 线程中断interrupt()

线程中断有三种方法:1、stop(),暴力中断,会导致事物不完整,已被废弃2、flag标记法,用标记变量做循环条件,外部线程改变flag的值来达到中断线程的目的3、

2017-03-18 11:00:09 349

原创 JAVA socket实现TCP/UDP的多线程通信

TCP服务端package com.nicovon.socket;import java.io.*;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;/** * 服务端 */public class Server { public static void main(Stri

2017-03-14 21:50:15 777

转载 JAVA IO操作

java.io.File类用于表示文件(目录) File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件。 RandomAccessFile支持随机访问文件,可以访问文件的任意位置(1)java文件模型 在硬盘上的文件是byte byte byte存储的,是数据的集合 (2)

2017-03-14 21:43:18 345

转载 JAVA Map的四种遍历比较

import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;/** * 结论: * 第一种和第二种遍历性能相似,在既要key又要value的情况下可以用其中之一 * 第三种需要根据key用get方法取value,相当于多一次遍历,性能差一些,但如果仅需要key,用

2017-03-11 14:45:43 1815

原创 C语言动态添加数组元素

有时候需要用数组实现List功能,普通静态数组长度被固定无法动态控制数组大小,要用动态数组实现,动态数组的声明很简单:int len = 10;int *array = (int*)malloc(sizeof(int)*len);但数组元素超过10个之后想再添加元素,直接这样写: *(array+10) = x; 虽然也可以正常编译执行,但这是个错误写法,因为我们只为array分配了array

2017-01-24 12:08:41 27983 1

转载 字符串匹配算法strstr()

KMP: http://blog.csdn.net/v_july_v/article/details/7041827Sunday:http://blog.csdn.net/q547550831/article/details/51860017

2017-01-11 08:59:34 701

原创 转十进制问题

Excel列转十进制例如A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 思路:本质是一个26进制数转十进制的问题,求这类问题都是从高位到低位遍历,就是正常遍历字符串,在遍历当前值时,对上一个值乘以进制数。举个例子:BAD,初始结果res为0,->B, res = 0 * 26 + 2 = 2;->A, res = 2 * 26 + 1 =

2017-01-05 16:00:06 285

原创 数根(digital root)公式的推导

题目:给定一个数字,求其数根,例如给定38,3+8=11,1+1=2,则2就是其数根推导:假定十进制数n,表达式写为 x=∑i=0n−1ai10i x = \sum_{i=0}^{n-1} a_i 10^i 其中ai a_i 表示从低到高的每一位,因为10i≡1i≡1(mod9) 10^i \equiv 1^i \equiv 1 \pmod 9 ,那么 x≡∑i=0n−1ai(mod

2017-01-03 08:50:24 5052

原创 逻辑运算实现加减法

一、加法function add($x, $y){ $sum = $x; while($y != 0){ $sum = $x ^ $y; //不考虑进位相加 $y = ($x & $y) << 1; //将y视为进位 $x = $sum; } return $sum;}二、减法a - b = a + ~b + 1 两数相减

2016-12-23 11:26:28 6958

原创 求数组中缺省的数字

给一个array,长度为n,里面的元素有性质0<=array[i]function findDisappearedNumbers($array){ $ret = array(); for($i = 0; $i < count($array); $i++){ $k = abs($array[$i]); if($array[$k] > 0){

2016-12-22 17:22:02 881

原创 给定两个整形,求彼此二进制的不同位数

求两数的二进制的不同位,可以想到用异或,得到的值再求1的个数即可<?php function hammingDistance($x, $y){ $xor = $x ^ $y; $count = 0; while($xor != 0){ $xor = $xor & ($xor - 1); ++$co

2016-12-22 16:28:46 326

转载 判断二叉树是否为平衡二叉树

一、线性思维遍历每个节点都时候,求左右子树的深度,如果左右子树深度相差不超过1,继续递归遍历左右节点,此种方法会重复遍历,时间效率不高IS_BALANCED(T)if T is NULLreturn true;left = TreeDepth(T.left);right = TreeDepth(T.right);diff = left - right;if

2016-12-19 16:32:49 295

原创 活动选择问题

原题:给定n个活动的开始时间集合s[i]和结束时间集合f[i],假设只有一个房间,求一个最大集合使得这些活动在时间区间内安排的活动数最多思路:贪心法,将f[i]排序,选择最早结束的活动,剩下的时间可供之后尽量多的活动使用。因此,先将活动按结束时间排好序,例如: a 1 2 … i f[i] 4 7 … 10 s[i] 3 1 … 8sele

2016-12-12 16:11:27 584

原创 PHP求解股票买卖问题

动态规划比较经典的题目给定一支股票一段日期内的的每日价格price题目1: 求这段时间内买卖一次获得的最大收益思路:即找到一组i和j,使得 price[i] - price[j] 最大,且i状态转移方程式为:profit = max(profit, price[i] - minPrice);而minPrice = min(minPrice, price[i]);fu

2016-12-10 08:30:03 732

原创 钢条切割问题

问题:给定一段长为n英寸的钢条和一个价格表p[i](i=1,2,...,n),求切割方案使得收益r[n]最大将切割x段的问题转化为切长度为i和剩下的n-i的问题,即得到公式:r[n] = max(p[i] + r[n-i]) (1<?php/** * 钢条切割问题 */$p = array(1,5,8,9,10,17,17,20,24,30);$n = 7;echo bot

2016-12-09 14:39:37 299

原创 最长公共子序列LCS和最长回文子序列的动态规划算法

<?php$x = array('A','B','C','B','D','A','B');$y = array('B','D','C','A','B','A');$c = lcsLength($x, $y);//var_dump($c);printLcs($c, $x, $y, count($x), count($y));function lcsLength($x, $y){

2016-12-09 11:06:12 294

原创 preg_replace替换内容中间部分

需求是这样:用正则匹配一个HTML文件中标记中的图片地址最初的实现:$img = '';$newImg = preg_replace('//i','',$img);echo $newImg;这样虽然没有问题,但是不符合我最初的想法,我的想法是只替换src里的内容,保留左右两边的标签及属性。看手册,对preg_replace()中第二个参数有这样的描述:replacement

2015-04-09 15:34:32 3696

原创 Linux umask命令

在创建新目录或文件时,系统会默认给一个权限,如果想修改m

2014-11-04 15:40:57 548

原创 mysql_query 和mysql_unbuffered_query的源码解析

今天用mysqli的时候发现mysqli::real_query()所得的结果集必须用

2014-05-29 09:56:10 1014

原创 call_user_func

c语言中可以把函数指针作为另一个函数的参数传递,PHP显然没有C语言可以那么灵活控制指针,在实际实现中,我觉得可以用call_user_func代替。代码如下<?php$flag = 1;//or $flag = 2;$arr = array(2,34,5,3,68,56,35,44,54,78,9,7,3,21);switch($flag){ case 1: BubbleSo

2014-03-27 15:38:13 790

原创 在linux上进行php开发扩展

运行环境:我在服务器上曾经配过lamp,php版本为5.3.10,可在ubuntu上配置的php不是php源码,所以需要再下载一版源码,下载地址是 http://cn2.php.net/distributions/php-5.3.28.tar.bz2 (注:此版本虽为5.3.28,个人猜测只要大版本号不变,编译出的扩展是可以兼容的)下载完成后安装:tar -jxvf 源码包

2014-03-11 17:35:54 1022

原创 php手册上对Ticks解释的一点理解

有这样一段代码<?php declare(ticks=1);function tick_handler(){ echo "d";}register_tick_function('tick_handler');$a ="中文";print($a);?>实际上,上面的写法与下面相同<?php declare(ticks=1){ function tick

2013-09-29 18:00:30 610

原创 spl_autoload的一点使用心得

采用spl_autoload实现自动加载的一点心得,适合新手参考。项目名为webServer,项目目录结构大致为controlers文件夹                    -------Todo.phpindex.php假设Todo.php中存在一个类,名为Todo,在index.php中进行实例化new Todo();那么我们在index.php中添

2013-09-27 11:29:43 876

转载 创建以 API 为中心的 Web 应用

找到一篇好文章,供以后做接口用翻译by stoneyang出处:开源中国社区src:http://www.oschina.net/translate/creating-an-api-centric-web-application

2013-09-24 11:20:15 621

原创 Mysql检测修改字符集

最常用的:SHOW VARIABLES LIKE 'collation%'; 分别为连接层字符集;当前选中库的默认字符集;默认的内部操作字符集SHOW VARIABLES LIKE 'character%';– character_set_client:客户端来源数据使用的字符集– character_set_results:查询结果字符集– character_s

2013-09-23 14:43:49 570

空空如也

空空如也

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

TA关注的人

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