pyb的博客

一个编程之路上的初学者

排序:
默认
按更新时间
按访问量

用Netty实现Redis(2)

这是一个用Netty实现的,支持多线程和异步调用,lock-free 的JavaRedis client客户端 (服务器版本:https://blog.csdn.net/pp634077956/article/details/82178710) github: https://github...

2018-08-29 10:08:56

阅读数:75

评论数:0

用Netty实现Redis

这是一个用Netty实现的Redis(服务器版本) github地址:https://github.com/pyb1993/JavaRedis 目的有三: 深入理解redis,将redis上的各种功能慢慢迁移到java上来 用C语言来实现太麻烦了,而且一般工作中用不到C,加上我前两个项目...

2018-08-29 10:03:40

阅读数:146

评论数:0

麻将胡牌判定的判定算法

麻将胡牌判定的判定算法 问题背景 : 简化了麻将规则,给定[1s-9s],[1b-9b],[1t-9t]一共27种牌,每种牌都有4张。需要判断给定的牌是不是胡牌。 胡牌的定义为: 14张牌里面由一个对子,四个坎组成。其中对子代表两张一样的牌,坎代表三张一样的牌,或者三张连续的牌(...

2018-01-13 23:39:36

阅读数:1467

评论数:0

关于eventmachine,协程在rails里面的使用

最近在公司实习的时候一直在学习rails和ruby.在实现一个小需求,从微信的接口拉取粉丝信息然后更新我们的数据库,这是一个不太常用的功能,很久才会跑一次.但是rails的模式,如果作为普通的客户端来发需求,而且同时发送的请求不可以太多,否则会出错(估计是微信的限制),ruby的httpreque...

2017-07-20 20:19:10

阅读数:288

评论数:0

单词纠错APP

设计思路:(1)我们首先需要提出一个指标来衡量单词的相似程度,利用编辑距离,即字符串A经过插入,删除,改变三个操作变成字符串B需要花费的最少操作次数,利用动态规划即可解决.(2)如何高效找出候选单词呢,建立字典树然后遍历比较是可以的,但是在单词数量大的时候效率很低。利用BK树可以避免大量的不必要比...

2017-04-23 20:40:01

阅读数:451

评论数:0

SIMD小测试

今天研究了一下SIMD指令,做了一个小测试,发现速度变快了5倍,但是在release模式下编译器会做同样的优化。所以很多时候我们可以不需要手动的写SIMD.当然编译器不一定会做这样的优化。另外注意64位系统上new自动16位对齐,但是用int[]这样的办法就会导致内存越界,因为栈上的内存不一定是1...

2017-04-08 10:25:24

阅读数:415

评论数:0

leetcode之N点成线问题

下面的代码没有精炼过,就写的比较罗嗦了。平面上任意N点,其中一条直线最多过几个点,这个题显然有O(n^2)的解法,关键的一点是一定要注意cornercase,比较多,我试了7,8次才过….首先考虑相同的点,这个要单独列出来,其次考虑不能用double表示斜率,用一个pair表示分数既可,所以要写g...

2017-04-03 09:00:28

阅读数:457

评论数:0

网易笔试的两道dp问题

#include "iostream" #include "vector" #include "algorithm" #include "string" #include "cmath" using...

2017-03-29 18:51:18

阅读数:317

评论数:0

高效大整数运算库-------An Efficient Library for BigInteger

———-高效的高精度大整数库———-————-本着锻炼一下编程和优化能力的目的,花了两个多星期完成了这个作品。具体的性能比较可以参考这个:性能比较0. 其实在1年多前刚刚开始学习C++的时候也曾经做过一个用字符串来表示大整数的练习,但是运行速度很慢,所以我首先将原来的代码翻了出来看了看,首先把...

2017-03-23 16:53:00

阅读数:1150

评论数:2

简单五子棋AI

五子棋AI这个项目参考了网上的五子棋源码,并且做出了自己的修改与一定的优化。基本思路:首先我们知道棋类AI的基本框架就是博弈树,使用最大最小搜索算法和alpha/beta剪枝。这是基本的框架。然后因为存在的解太多,所以我们需要考虑一个评估函数来进行选择。[1]评估:这里主要采用状态分析的办法来进行...

2017-02-23 18:16:47

阅读数:717

评论数:0

C++项目:Json_parser

我的json parser/generator我的json parsergenerator - 功能简介 1 解析器部分 2 生成器部分 3 测试部分 - 部分实现 1整体框架 1json_value可能代表6个类型中的一种 2json_tree执行具体的解析 2 Literalnullfalse...

2017-02-01 18:35:10

阅读数:1674

评论数:1

关于关系型数据库表的设计

这篇文章主要是总结一下看书的收获,至于具体的实例,可能等到以后工作了才能给出吧,最近没遇到什么数据库的问题。表的设计最基本的就是要满足一些范式,所谓范式,可以理解为对设计标准的满足程度。我暂时只学习了三个范式。[0]:第一范式:一张表必须要使得每一列都满足原子性才能满足第一范式(其实还必须有主键,...

2017-01-16 22:34:37

阅读数:282

评论数:0

判定一个点是否在三角形内部

给定任意一个点的坐标和一个三角形,判定这个点是否在三角形内部。本文独立思考完成,没有参考别的资料,可能方法不是太简洁。基本思路:[0]:考虑点在三角形内部的特征:任何一条经过该点的直线都一定会和这个三角形有交点,也就是会与某些边有交点。考虑这样的直线的特殊情况使得经过外部的点的直线和三角形没有交点...

2017-01-09 15:37:34

阅读数:398

评论数:0

三角形填充和分形练习

画出一个六角星,在六角星的两条边上的三等分点作一个新的等边三角形,然后递归的做下去,并且图形的内部必须填充颜色。[0]:首先考虑如何画出一个六角星,基本方法是:先画一个三角形,然后对每一条边的两个三等分点求出第三个顶点,这样以新的三个点作一个三角形和原来的三角形合成在一起就得到了六角星。[1]:接...

2017-01-09 13:51:54

阅读数:366

评论数:0

遗传算法的入门实现(2):利用正方形拼接firefox

这段程序没有参考网上的任何代码,属于自己独立完成,因此效果也不是很理想。但是不管怎样,我也花了不少心思研究,就当是述说一下自己的思路吧:(1)(1)首先为什么不用三角形来进行填充呢?因为三角形的绘制和填充本身来说不是一件很容易的事情(对于我来说,虽然我参考了一下网上的算法,已经有了基本的思路,但是...

2016-12-04 20:15:39

阅读数:2978

评论数:0

遗传算法的简单实现(1):求解函数最大值

刚刚了解了一点遗传算法的原理,参照了网上的一篇入门教程自己实现了一下。参数和操作:参数和操作:染色体(表示方法),染色体长度,变异率,交叉率,最大的总群个体数,评估函数,目标函数(在这里与评估函数一致)。对函数对函数搜索最大值。实现思路:将染色体表示为x,y的值(以bit的形式来表示),进行选择,...

2016-12-03 16:21:21

阅读数:2984

评论数:0

Python爬虫(2):溴事百科

首先说明一下,这份代码参考了汪海大大的博客,然后自己重写并且改动了一下而来。首先对溴百的源代码进行一下分析,发现只要关键的段子都是在<div class="content">内容<span><\span>这种模式下的,所以我们需要对爬虫的内容...

2016-11-30 16:04:46

阅读数:421

评论数:0

基于模型融合的推荐系统实现(3):模型融合

基本思路很简单,最小二乘法就好了:我们假设两个算法得到的结果权重分别是a,b利用最小二乘法和我们分出来的第二部分数据就可以获取a,b使得误差最小。其实最小二乘法就是求一个广义的逆即可。最后的RMSE比起单一的模型有所提高,变成了(0.86~~~~)import numpy as np from c...

2016-11-29 19:19:21

阅读数:1309

评论数:3

基于模型融合的推荐系统实现(2):迭代式SVD分解

SVD算法的原理网络上也有很多,不再细说了,关键是我们得到的数据是不完整的数据,所以要算SVD就必须做一次矩阵补全。补全的方式有很多,这里推荐使用均值补全的方法(用每一行均值和每一列均值的平均来代替空白处),然后可以计算SVD,作PCA分析,然后就可以得到预测结果。但是我们这里有一个极为关键的思路...

2016-11-29 19:11:42

阅读数:614

评论数:0

基于模型融合的推荐系统实现(1):基于SGD的PMF

(1)PMF算法PMF的基本的思路,就是定义两个基本的参数W,U,然后对于任意一个组合(u,m),利用Wi∗UjW^i*U^j,来获取预测值。这些基本的算法思路网上很多,就不细说了。简单说一下程序[0]:一开始我们要将训练数据划分为3部分,第一部分用来做普通的SGD训练,第二部分用来训练模型融合,...

2016-11-29 19:03:37

阅读数:1106

评论数:0

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