- 博客(28)
- 收藏
- 关注
原创 分布式一致性协议:Basic Paxos原理及推导
文章目录引言问题的提出提案的选定初步尝试 - Single Acceptor多个acceptor推导一个acceptor必须批准它收到的第一个提案一个acceptor必须能够批准不止一个提案有序提案的组成提案value的约束proposer生成提案acceptor批准提案算法陈述learner学习被选定的value选取主Proposer保证算法的活性参考引言Paxos是啥,引用大牛Leslie...
2018-12-27 17:01:53 3621 1
原创 glusterfs IO缓存池
glusterfs IO缓存池主要包括三个数据结构:iobuf_pool,iobuf_arena,iobuf。iobuf最小的io buffer单元 struct iobuf { union { /* 链表,链接到同一个iobuf_arena中的其他iobuf */ struct list_head list; ...
2018-09-03 01:17:37 1206
原创 gluster安装完全指南
环境机器系统版本:debian9.5 【more /etc/debian_version】gluster版本:glusterfs 4.1.1【glusterfs --version】服务端:fk1 192.168.48.160服务端:fk2 192.168.48.161客户端:fk3 192.168.48.162网关:192.168.48.2掩码:255.255.25...
2018-07-22 22:14:24 2216
原创 基数估计算法(二):Linear Counting算法
写作不易,转载请注明出处:http://blog.csdn.net/wbin233,谢谢。简介基本思想及实现公式证明Un和Vn的期望和方差U_n和V_n的期望和方差偏差-BiasnnBiasfrachat nn的计算标准误差-StdErrornn的计算StdErrorfrachat nn的计算bit数组的长度m的选取满桶控制参考资料简介Linear Counting是KYU-YO
2017-12-09 22:47:09 3348 1
原创 基数估计算法(一):Flajolet-Martin算法
写作不易,转载请注明出处: http://blog.csdn.net/wbin233/article/details/78730977简介说起基数估计算法的始祖,或许就是由Flajolet和Martin大佬发表的论文《 Probabilistic counting algorithms for data base applications 》开始的吧。他们提出在大数据中基于概率来估计基数的算法,江湖人称FM算法。
2017-12-06 17:20:37 8163
原创 多种基数估计算法
Flajolet-Martin(FM) sketch 又名 Probabilistic counting with stochastic averaging (PCSA).Linear CountingLogLog CountingHyperLogLog CountingAdaptive CountingHperLogLog++ CountingMinCount【关于每种方法的具体介绍
2017-12-06 14:13:23 1082
原创 一种快速求集合交集个数上限的方法
简介动机Cardinality FiltersSCF - Single Cardinality FilterSCF的几点性质RCF - Recursive Cardinality FilterRCF的几点性质参考资料简介介绍一个新的数据结构“Cardinality Filter”来快速计算一组交集的大小上限。且期望的时间复杂度为O(|A|+|B|w\frac{|A| + |B|}{w}
2017-12-05 14:28:16 3833 1
原创 LIS算法: 最长上升子序列
LIS定义 LIS(Longest Increasing Subsequence)最长上升子序列 一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … < iK <= N。 比如,对于序列(1, 7,
2017-08-25 11:49:16 22425 6
原创 使用Flask-Mail和qq邮箱SMTP服务发送邮件
开启qq邮箱SMTP服务安装Flask-Mail配置Flask-Mail发送邮件大量邮件附件完整例子项目中不可避免需要使用邮箱认证,如果使用flask则可以利用Flask-Mail来实现。 Flask-Mail 扩展提供了一个简单的接口,可以在 Flask 应用中设置 SMTP 使得可以在视图以及脚本中发送邮件信息。开启qq邮箱SMTP服务这里我利用的qq邮箱的SMTP服务,所以首
2017-06-14 13:23:32 21993 1
原创 linux下升级python3
查看本地python版本提前填坑做好准备下载要安装的python版本解压安装配置编译安装验证设置默认版本配置yum和pip最近购了一年的阿里云服务器,配的操作系统是CentOS 7.2 64位,默认安装了python,不过版本是2.7.5,没有配python3.5,python3还是很好用的,那我自然不能忍受了。 以下便是升级py3的过程以及一些坑。查看本地python版本如果安装了py
2017-06-13 23:39:08 1058
原创 位运算求数组中只出现一次的数
今天偶然看到的有趣的问题,有好几个系列,感受位运算的小魅力。 当然下面的题可以用map来简单算出,所以下面的题要求时间复杂度为O(n),空间复杂度为O(1)。1. 简单版 一个数组中,只有一个数只出现一次,其他的数都是成双成对出现(2次,4次,6次…),求这出现一次的数。熟悉异或运算的朋友,看到就会说so easy了。 就是利用异或的性质,两个相同的数异或结果为0,不同为1,同时异或与顺序
2017-06-11 01:35:15 3164 1
原创 康托展开和逆康托展开
简述 康托展开是一个全排列到一个自然数的双射,常用于构建hash表时的空间压缩。设有n个数(1,2,3,4,…,n),可以有组成不同(n!种)的排列组合,康托展开表示的就是是当前排列组合在n个不同元素的全排列中的名次。原理X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中, a[i]为整数,并且0 <= a[i] <= i,
2017-06-10 17:56:16 21079 15
原创 android 蓝牙4.0(BLE)开发
最近刚好项目需要手机与蓝牙模块通信,基于蓝牙4.0,网上资料较少也有些小坑,故作一下总结。关键术语和概念蓝牙有传统蓝牙(3.0以下)和低功耗蓝牙(BLE,又称蓝牙4.0)之分,而蓝牙4.0开发需要android4.3版本(API 18)及以上才支持BLE API。相比传统的蓝牙,BLE更显著的特点是低功耗。这一优点使android App可以与具有低功耗要求的BLE设备通信,如近距离传感器、心脏速
2017-06-06 12:27:18 2759 3
原创 编程语言分析及其应用:Lisp格式到C格式的转换及其计算
Lisp格式到C格式的转换Lisp格式表达式的类型检测Lisp格式表达式的计算Lisp格式到C格式的转换Lisp的函数调用格式为: (函数名 参数1 参数2 … 参数n)C的函数调用格式为:函数名(参数1, 参数2, …, 参数n)现有五个整数的二元函数add、sub、mul、div、mod和一些使用这些函数的Lisp格式表达式,请实现一个程序转换器,将这些Lisp格式表达式转成C格式的表
2017-05-27 00:34:19 3651 16
原创 python 列表去重(不可变类型和可变类型)
不可变类型利用set特性去重ids = [1, 3, 8, 3, 8, 1, 9, 9, 9, 1]ids = list(set(ids))新建一个list,循环遍历ids = [1, 3, 8, 3, 8, 1, 9, 9, 9, 1]new_ids = []for item in ids: if item not in new_ids: new_ids.ap
2017-05-25 00:09:16 4857
原创 java8 LinkedList源码阅读【2】- 总结
上一篇文章 java8 LinkedList源码阅读已经分析了LinkedList源码,现对LinkedList做个小结。LinkedList特点 双向链表实现,因此没有固定容量,不需要扩容元素时有序的,输出顺序与输入顺序一致允许元素为 null所有指定位置的操作都是从头开始遍历进行的和 ArrayList 一样,不是同步容器需要更多的内存,LinkedList 每个节点中需要多存储前
2017-04-17 01:27:38 823
原创 java8 LinkedList源码阅读
阅读了LinkedList源码的实现,并对源码做了相关注释,如下: 以下内容基于jdk1.8.0_121的ArrayList的源码。 【如果觉得代码太长,可直接看另一篇 java8 LinkedList源码阅读【2】- 总结】/* * LinkedList 源码阅读 * Created by wbin on 2017/4/16. */package java.util;import ja
2017-04-16 22:16:01 380
原创 java8 ArrayList源码阅读【2】- 总结
上一篇文章 java8 ArrayList源码阅读已经分析了ArrayList源码,现对ArrayList做个小结。ArrayList一个动态数组,其本质也是用数组实现的,它具有:随机访问速度快,插入和移除性能较差(数组的特点);支持null元素;有顺序;元素可以重复;线程不安全;ArrayList实现了List接口以及list相关的所有方法,它允许所有元素的插入,包括null。另外,Array
2017-04-16 13:33:01 3273 1
原创 java8 ArrayList源码阅读
阅读了ArrayList源码的实现,并对源码做了相关注释,如下: 以下内容基于jdk1.8.0_121的ArrayList的源码。 【如果觉得代码太长,可直接看另一篇《 java8 ArrayList源码阅读【2】- 总结》】/* * ArrayList 源码阅读 * Created by wbin on 2017/4/15. */package java.util;import j
2017-04-16 01:23:08 569
原创 poj 3254 Corn Fields【状态压缩dp-入门】
题目链接:http://poj.org/problem?id=3254Corn FieldsFarmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yummy corn for the cows on a number of squares. Regrettably, some of
2016-04-11 17:31:49 527
原创 poj3468 A Simple Problem with Integers[线段树成段更新成段查询]
A Simple Problem with Integers=se Time Limit: 2000MSDescriptionYou have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type of operation is to add some given number to each number in a given interval. The other is to ask
2016-04-08 02:40:05 427
原创 HDU 1166 敌兵布阵[线段树单点更新成段查询]
敌兵布阵Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向Derek汇报某一段连续的工兵营地一共有多少人
2016-04-08 02:17:14 498
原创 HDU 1754 I Hate It(线段树区间求最值)
HDU 1754 I Hate It(线段树区间求最值)I Hate It很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。
2016-04-08 02:05:02 390
原创 Android 从相册中选择照片并返回
参考自《第一行代码》及相关资料,这里存一遍后以后就不用再重头打一遍了。。首先由于进行读写操作,要在 AndroidManifest.xml中声明权限:调用系统相册:private static final int CHOOSE_PHOTO=0;Intent intent = new Intent("android.intent.action.GET_CONTENT");i
2016-03-22 14:25:31 7698 5
原创 android studio在线安装插件
这里我的版本是android studio 1.5.1。先点开File ,点击Setting点开Setting后点击Plugins 出现下图。 下面列的就是软件已经安装过的插件。在这里,我们选择在线安装插件,有三个按钮。第一个按钮是安装官方插件,第二个是安装民间插件,第三个则是安装本地插件。在这里点击 第二个按钮“Browse repositories..”按钮
2016-03-21 00:10:11 614
原创 利用java UDP协议,实现简单的双人聊天
大概思路就是在主线程中,跑两个子线程,一个用于发送消息,另一个用于接收消息,就这么简单... = = 代码附下:/* by wbin 2015/12/18利用UDP协议,实现了简单的双人聊天 */import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;im
2015-12-18 19:00:32 4121
原创 n皇后问题回溯法---java图形界面实现回溯过程
/* by wbin 2015/12/18实现n皇后问题的回溯法过程,以java图形界面展示,代码写得略丑,见谅.*/import java.awt.Color;import java.awt.Font;import java.awt.GridLayout;import java.awt.Label;import javax.swing.JFrame;public class Ma
2015-12-18 18:42:36 3119
原创 一些常用的控制行命令
下面是今晚给人讲的常用命令行指令:shutdown -s -t 0assoc .exe=exefileattrib +h /sdir /ah *.avi cd color clsmove rename rd/rmdirtype
2015-12-06 23:28:06 748 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人