联合概率、边缘概率、条件概率之间的关系&贝叶斯公式 前言有挺长一段时间没有更新博客了,一方面是学校期末考试,后来又看了一些很基础的编程数学思想的东西(《程序员的数学》第一卷),大多数东西都在之前的学习和使用中都有注意到,所以没有什么特别值得更新的。这次看到了卷2《程序员的数学2——概率统计》发现之前在概率论的学习过程中,忽略了一些比较重要的东西,这边就来记录一下,如果有写的不对和写得不好的地方,请各位看官老爷帮忙指出~正文这次主要介...
最优化问题——梯度下降/上升法 前言在各种应用场景下我们经常会遇到一些求最优解的问题,在计算机中我们可以利用梯度下降法/上升法来求解局部最优解。梯度下降:向函数上当前点对应梯度(或近似梯度)的反方向,按照规定步长进行迭代搜索,接近函数的局部极小值。梯度上升:向函数上当前点对应梯度(或近似梯度)正方向,按照规定步长进行迭代搜索,接近函数的局部极大值。在机器学习中梯度下降法被广泛用来最小化目标函数(求目标函数取最小值时所对应自变量的值
海量数据判重——布隆过滤器(Bloom filter)与Bitmap对比 前言 之前写过一篇Bitmap在海量整数排序中应用的博客,在看过布隆过滤器之后,感觉两个有些相似,但是又有区别,在查阅了很多资料之后,这里决定稍作总结。 关于布隆过滤器(Bloom filter)的介绍部分,大多翻译自Wikipedia正文布隆过滤器简介 布隆过滤器(Bloom filter)是一个高空间利用率的概率性数据结构,由Burton Bloom于1970年提出。被用于测
伪随机数生成——梅森旋转(Mersenne Twister/MT)算法笔记 前言 最近在看吴军博士的《数学之美》一书,把很多之前没注意到,没用到,甚至不知道怎么用的数学知识和实际问题联系了起来,感觉打开了新世界的大门一样。这本书很多知识点还有技术都是点到为止,并没有深入,所谓师傅领进门,修行在个人吧。所以从本篇开始,博主将对数学之美一书中的一些提到的东西做个总结。不对的地方希望各位看官大佬们多多指正。 在本书第16章《信息指纹及其应用》一文中,介绍到了现在常用的
Bitmap在海量无重复整数排序时的应用 前言bitmap bitmap就是用一个bit位来标记某个元素对应的value的存在,而key即是这个元素。由于采用bit为单位来存储数据,因此在可以大大的节省空间开销 这里的海量数据以整数为例,整数为4字节,也就是32bit,假设数据量N=100000000,由于bitmap是用一个bit来标识元素的存在,那么我们只需⌈N/8⌉个字节就可以把数据表示出来也就是12500000字节,约
Java中的匿名内部类及其使用技巧 前言在介绍匿名内部类之前,首先我们应该先来了解一下内部类及局部内部类:内部类 内部类(inner class)是定义在另一个类中的类,内部类中的方法可以访问创建该内部类的类(我们称其为外围类 outer class)的域中所有数据(包括私有/private数据)。并且,内部类可以对同一个包中的其他类隐藏起来。 但是由于内部类是一种编译器现象,在虚拟机中只存在常规类文件,所以在编译过程中
Java中关于返回引用可变对象常见问题剖析 前言在工程中,我们创建了一个类,经常包含一些可变类的对象实例,当我们需要提取这些数据的时候,需要格外注意,否则会出一些意料之外的问题正文名词解释可变对象:类中有方法可以改变其对象的类举例假设我们有一个example类,其中为Date类创建了一个实体birthday,在外部需要知道某个example类实例的birthday值时,会使用到getBirthday()方法,通常我们的getBirthday
Java中equals方法造成空指针异常的原因及解决方案 前言博主最近在做一个项目的调试工作,期间遇到了一个会导致抛出空指针异常的小问题,说它是小问题,是因为真的只是在写代码的时候注意一下就好了,但是这里还要写一个博客,就是为了剖析这个问题,然后给自己做个备忘,也给看博客的各位提个醒。bug描述迭代1
解决 Ajax 与导出文件下载冲突的心路历程 前言最近在后期调试一个项目的时候,爆出一个导出Excel无法按照查询条件导出的bug,面对这样影响用户体验的bug,有强迫症的博主我是不能忍的,所以就操刀开始修改,本以为能跟之前的一堆弱鸡bug一样,手到病除,但是并没有那么顺利,触及的知识盲区这里也跟大家分享一下,也是做个备忘。正文bug描述 点击查询后,导出的Excel是全部数据,并不是查询出来的数据,且不区分用户角色,均可导出全部数据问题定位
针对Yii框架的Nginx配置及多个虚拟域名的配置 Yii框架是一个非常好用的PHP框架,开发快,上手容易,自推出以来广受好评,对于基本的Yii框架开发来说,不需要特殊配置,但是对于一些高级功能,就需要对你的服务器进行一些设置了。我所用到的服务器是Ubuntu16.04下的Nginx,所以这里就针对Yii框架的Nginx做一个小小的总结。需要满足的特性1、Yii框架的URL重写规则(此规则需要Nginx0.8.6版本以上支持)2、对于.svn、.gi
Ubuntu 16.04下LNPM开发环境搭建(Linux + Nginx + PHP + MySQL)及一些概念总结 前言首先,这里先插一嘴关于为什么我不在Windows下做这些工作……Windows下的确资源众多,软件什么的也很方便,但是,作为开发环境来说,还是有很多不方便的地方(例如:注册表、环境变量、路径设置、文件结尾格式、换行符格式等),而在Linux系统下,就没有那么多限制了,几条命令下去,需要的环境就会被安装好,要说Linux系统下最让人头疼的问题,那大概就是依赖包的配置。Linux系统介绍Linux是
PHP语言基础知识(学习笔记) PHP标记风格XML风格<?php echo 'Order processed.'; ?>推荐使用的风格,默认启用简短风格<? echo 'Order processed.'; ?>在许多默认设置中已经不支持,需要在配置文件中启用short_open_tag选项SCRIPT风格<script language = 'php'> echo 'Order pro
Windows下适用于PHP 7.1的memcache扩展工具编译 项目里需要PHP支持memcache扩展,首先来介绍一下memcache是啥吧介绍memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。memcache经常和memcached混淆
PHP 7.1 + Apache 2.4 + MySQL 5.6非集成环境配置 最近因为一个项目需要用到PHP环境,嫌集成环境“脏”(只是个人用软件方面的洁癖……不喜欢那种强行集合的东西,现在的集成环境真的还可以,但是我过不了自己心理这关……),就自己扒贴+看各种乱七八糟教程,终于摸索出了PHP 7.1 + Apache 2.4 + MySQL 5.6在Windows下的非集成环境的配置方法,下面放出我的教程
C++编程必备神器STL——常用算法 C++标准函数库中,为我们提供了一个algorithm库,里面包含了十分多的常用算法,下面我来做一个小小的总结非修改序列操作adjacent_find 查找两个相邻(Adjacent)的等价(Identical)元素all_of (C++11) 检测在给定范围中是否所有元素都满足给定的条件any_of (C++11) 检测在给定范围中是否存在元素满足给定条件count 返回值等价于
数论常用内容——中国剩余定理 中国剩余定理中国剩余定理是中国古代求解一次同余式组(见同余)的方法。是数论中一个重要定理。又称孙子定理。用现代数学的语言来说明的话,中国剩余定理给出了下图所示的一元线性同余方程组有解的判定条件,并用构造法给出了在有解情况下解的具体形式:
组合数学常用内容——Polya定理+Burnside引理 Burnside引理设G是N{1,2,.....,n}上的置换群,G在N上可引出不同的等价类(在置换群中有置换的都等价),其不同的等价类的个数为LL=1/|G|*(c1(a1)+...c1(ai)...+c1(ag))c1表示置换ai作用过后不变的方案数,也就是置换中循环节长度是1的循环个数(N中的元素是组合方案的序号不是自然数!此置换群是关于所有着色图像(所有可能的情况)集合N的置换)
数论常用内容——数根 对于数根可能接触的不多,但是我觉得这里还是应该做一下简单的总结和介绍数根数根(又称数字根Digital root)是自然数的一种性质,每个自然数都有一个数根。数根是将一正整数的各个位数相加(即横向相加),若加完后的值大于等于10的话,则继续将各位数进行横向相加直到其值小于十为止,最后得到的数字就是该数的数根