自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (1)
  • 收藏
  • 关注

原创 联合概率、边缘概率、条件概率之间的关系&贝叶斯公式

前言有挺长一段时间没有更新博客了,一方面是学校期末考试,后来又看了一些很基础的编程数学思想的东西(《程序员的数学》第一卷),大多数东西都在之前的学习和使用中都有注意到,所以没有什么特别值得更新的。这次看到了卷2《程序员的数学2——概率统计》发现之前在概率论的学习过程中,忽略了一些比较重要的东西,这边就来记录一下,如果有写的不对和写得不好的地方,请各位看官老爷帮忙指出~正文这次主要介...

2018-04-10 21:05:05 168182 21

原创 最优化问题——梯度下降/上升法

前言在各种应用场景下我们经常会遇到一些求最优解的问题,在计算机中我们可以利用梯度下降法/上升法来求解局部最优解。梯度下降:向函数上当前点对应梯度(或近似梯度)的反方向,按照规定步长进行迭代搜索,接近函数的局部极小值。梯度上升:向函数上当前点对应梯度(或近似梯度)正方向,按照规定步长进行迭代搜索,接近函数的局部极大值。在机器学习中梯度下降法被广泛用来最小化目标函数(求目标函数取最小值时所对应自变量的值

2017-12-05 21:45:12 1759

原创 海量数据判重——布隆过滤器(Bloom filter)与Bitmap对比

前言 之前写过一篇Bitmap在海量整数排序中应用的博客,在看过布隆过滤器之后,感觉两个有些相似,但是又有区别,在查阅了很多资料之后,这里决定稍作总结。 关于布隆过滤器(Bloom filter)的介绍部分,大多翻译自Wikipedia正文布隆过滤器简介 布隆过滤器(Bloom filter)是一个高空间利用率的概率性数据结构,由Burton Bloom于1970年提出。被用于测

2017-12-01 21:34:32 8822

翻译 伪随机数生成——梅森旋转(Mersenne Twister/MT)算法笔记

前言 最近在看吴军博士的《数学之美》一书,把很多之前没注意到,没用到,甚至不知道怎么用的数学知识和实际问题联系了起来,感觉打开了新世界的大门一样。这本书很多知识点还有技术都是点到为止,并没有深入,所谓师傅领进门,修行在个人吧。所以从本篇开始,博主将对数学之美一书中的一些提到的东西做个总结。不对的地方希望各位看官大佬们多多指正。 在本书第16章《信息指纹及其应用》一文中,介绍到了现在常用的

2017-11-28 20:11:51 33065 5

原创 Bitmap在海量无重复整数排序时的应用

前言bitmap bitmap就是用一个bit位来标记某个元素对应的value的存在,而key即是这个元素。由于采用bit为单位来存储数据,因此在可以大大的节省空间开销 这里的海量数据以整数为例,整数为4字节,也就是32bit,假设数据量N=100000000,由于bitmap是用一个bit来标识元素的存在,那么我们只需⌈N/8⌉个字节就可以把数据表示出来也就是12500000字节,约

2017-11-23 22:44:10 1358

原创 Java中的匿名内部类及其使用技巧

前言在介绍匿名内部类之前,首先我们应该先来了解一下内部类及局部内部类:内部类 内部类(inner class)是定义在另一个类中的类,内部类中的方法可以访问创建该内部类的类(我们称其为外围类 outer class)的域中所有数据(包括私有/private数据)。并且,内部类可以对同一个包中的其他类隐藏起来。 但是由于内部类是一种编译器现象,在虚拟机中只存在常规类文件,所以在编译过程中

2017-08-08 21:59:24 22974

原创 Java中关于返回引用可变对象常见问题剖析

前言在工程中,我们创建了一个类,经常包含一些可变类的对象实例,当我们需要提取这些数据的时候,需要格外注意,否则会出一些意料之外的问题正文名词解释可变对象:类中有方法可以改变其对象的类举例假设我们有一个example类,其中为Date类创建了一个实体birthday,在外部需要知道某个example类实例的birthday值时,会使用到getBirthday()方法,通常我们的getBirthday

2017-06-05 22:28:47 2454 2

原创 Java中equals方法造成空指针异常的原因及解决方案

前言博主最近在做一个项目的调试工作,期间遇到了一个会导致抛出空指针异常的小问题,说它是小问题,是因为真的只是在写代码的时候注意一下就好了,但是这里还要写一个博客,就是为了剖析这个问题,然后给自己做个备忘,也给看博客的各位提个醒。bug描述迭代1

2017-06-01 18:12:07 35959 10

原创 解决 Ajax 与导出文件下载冲突的心路历程

前言最近在后期调试一个项目的时候,爆出一个导出Excel无法按照查询条件导出的bug,面对这样影响用户体验的bug,有强迫症的博主我是不能忍的,所以就操刀开始修改,本以为能跟之前的一堆弱鸡bug一样,手到病除,但是并没有那么顺利,触及的知识盲区这里也跟大家分享一下,也是做个备忘。正文bug描述 点击查询后,导出的Excel是全部数据,并不是查询出来的数据,且不区分用户角色,均可导出全部数据问题定位

2017-06-01 17:32:34 1902

原创 针对Yii框架的Nginx配置及多个虚拟域名的配置

Yii框架是一个非常好用的PHP框架,开发快,上手容易,自推出以来广受好评,对于基本的Yii框架开发来说,不需要特殊配置,但是对于一些高级功能,就需要对你的服务器进行一些设置了。我所用到的服务器是Ubuntu16.04下的Nginx,所以这里就针对Yii框架的Nginx做一个小小的总结。需要满足的特性1、Yii框架的URL重写规则(此规则需要Nginx0.8.6版本以上支持)2、对于.svn、.gi

2017-05-20 18:59:08 962

原创 Ubuntu 16.04下LNPM开发环境搭建(Linux + Nginx + PHP + MySQL)及一些概念总结

前言首先,这里先插一嘴关于为什么我不在Windows下做这些工作……Windows下的确资源众多,软件什么的也很方便,但是,作为开发环境来说,还是有很多不方便的地方(例如:注册表、环境变量、路径设置、文件结尾格式、换行符格式等),而在Linux系统下,就没有那么多限制了,几条命令下去,需要的环境就会被安装好,要说Linux系统下最让人头疼的问题,那大概就是依赖包的配置。Linux系统介绍Linux是

2017-05-20 13:57:04 776

原创 PHP语言基础知识(学习笔记)

PHP标记风格XML风格<?php echo '<p>Order processed.</p>'; ?>推荐使用的风格,默认启用简短风格<? echo '<p>Order processed.</p>'; ?>在许多默认设置中已经不支持,需要在配置文件中启用short_open_tag选项SCRIPT风格<script language = 'php'> echo '<p>Order pro

2017-05-11 22:01:06 1154

原创 Windows下适用于PHP 7.1的memcache扩展工具编译

项目里需要PHP支持memcache扩展,首先来介绍一下memcache是啥吧介绍memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。memcache经常和memcached混淆

2017-05-10 15:01:51 8225 2

原创 PHP 7.1 + Apache 2.4 + MySQL 5.6非集成环境配置

最近因为一个项目需要用到PHP环境,嫌集成环境“脏”(只是个人用软件方面的洁癖……不喜欢那种强行集合的东西,现在的集成环境真的还可以,但是我过不了自己心理这关……),就自己扒贴+看各种乱七八糟教程,终于摸索出了PHP 7.1 + Apache 2.4 + MySQL 5.6在Windows下的非集成环境的配置方法,下面放出我的教程

2017-05-10 13:15:37 3421

原创 C++编程必备神器STL——常用算法

C++标准函数库中,为我们提供了一个algorithm库,里面包含了十分多的常用算法,下面我来做一个小小的总结非修改序列操作adjacent_find 查找两个相邻(Adjacent)的等价(Identical)元素all_of (C++11) 检测在给定范围中是否所有元素都满足给定的条件any_of (C++11) 检测在给定范围中是否存在元素满足给定条件count 返回值等价于

2017-05-07 12:24:55 11255 4

原创 数论常用内容——中国剩余定理

中国剩余定理中国剩余定理是中国古代求解一次同余式组(见同余)的方法。是数论中一个重要定理。又称孙子定理。用现代数学的语言来说明的话,中国剩余定理给出了下图所示的一元线性同余方程组有解的判定条件,并用构造法给出了在有解情况下解的具体形式:

2017-05-07 12:01:25 15544 1

原创 组合数学常用内容——Polya定理+Burnside引理

Burnside引理设G是N{1,2,.....,n}上的置换群,G在N上可引出不同的等价类(在置换群中有置换的都等价),其不同的等价类的个数为LL=1/|G|*(c1(a1)+...c1(ai)...+c1(ag))c1表示置换ai作用过后不变的方案数,也就是置换中循环节长度是1的循环个数(N中的元素是组合方案的序号不是自然数!此置换群是关于所有着色图像(所有可能的情况)集合N的置换)

2017-05-07 11:15:00 3315 1

原创 组合数学常用内容——基础内容+莫比乌斯反演

组合数公式+卡特兰数+斐波那契数+母函数+莫比乌斯反演等

2017-05-06 22:43:29 698

原创 数论常用内容——数根

对于数根可能接触的不多,但是我觉得这里还是应该做一下简单的总结和介绍数根数根(又称数字根Digital root)是自然数的一种性质,每个自然数都有一个数根。数根是将一正整数的各个位数相加(即横向相加),若加完后的值大于等于10的话,则继续将各位数进行横向相加直到其值小于十为止,最后得到的数字就是该数的数根

2017-05-06 22:21:35 1360

原创 数论常用内容——高斯消元

高斯消元法数学上,高斯消元法,是线性代数中的一个算法,可用来为线性方程组求解高斯消元法求解线性方程组时,首先需要根据方程,列出增广矩阵。然后再利用初等行变换把增广矩阵转换为行阶梯阵,然后回代求出方程的解高斯消元法的应用1、找出可逆矩阵的逆矩阵设A为一个N*N的可逆矩阵,将一个N*N单位矩阵I放在A的右边,形成一个N*2N的分块矩阵 B = [A,I] 。经过高斯消元法的计算程序后,矩阵B的左边原来

2017-05-06 22:11:42 648

原创 数论常用内容——欧拉函数

今天博主来稍微介绍一点欧拉函数的知识欧拉函数在数论中,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(记作φ(n),其中φ(1)=1)注意,欧拉函数是一种积性函数,它并不是完全积性的,它只满足:对于正整数n的一个算术函数 f(n),且f(1)=1,并当a,b互质时f(ab)=f(a)f(b)

2017-05-06 21:46:39 2203

原创 数论常用内容——反素数

提到反素数,大家可能比较陌生,这里博主我对反素数的了解也不是很深刻,希望能借此机会来总结一下并和大家交流概念对于任何正整数n,其约数个数为f(n),如果某个正整数n满足:对任意正整数i(0<i<n),都有f(i)<f(n),那么称n为反素数。性质性质1、一个反素数的所有质因子必然是从2开始的连续若干个质数,因为反素数是保证约数个数为x的这个数n尽量小性质2、如果n=2^t1*3^t2*5^t3*…

2017-05-04 17:10:54 855

原创 数论常用内容——素数

在做数论题过程中,素数出现的频率很高,在基础题和中档题甚至很多高难度的题里面都很常见,这篇博客就来对素数及其使用做一个小小的总结

2017-05-04 16:18:33 1093

原创 数论常用内容——矩阵快速幂

在数论题以及一些非数论题中,经常出现递推的情况,如果找不到规律,强行迭代递推的话不是一个明智的选择,今天我就来给大家介绍一个适用于这种情形的方法——矩阵快速幂矩阵快速幂是如何优化递推的呢?首先,需要先构造合适的初始状态(第一个矩阵)然后,利用此矩阵和矩阵乘法的性质,使用快速幂的手段求出之后的状态构造矩阵可以根据矩阵乘法的实现特点来构造,利用合适的性质可以简化运算如何构造矩阵呢?

2017-05-04 12:31:20 467

原创 数论常用内容——阶乘

在竞赛中,阶乘也被经常提及,而且总是不那么好处理,下面我就给大家介绍一点关于阶乘常用的内容

2017-05-04 11:03:42 1866

原创 POJ 2417 Discrete Logging (求解模方程a^x≡b(mod n))

本题题意很明确,要求解一个解模方程a^x≡b(mod n),这里博主采用了大步小步算法,也就是B-S-G-S算法代码如下

2017-05-04 10:42:48 477

原创 数论常用内容——欧几里得算法与扩展欧几里得算法

欧几里得算法欧几里得算法有一个为更多人所知的名字叫“辗转相除法”,它是用来求解两个数的最大公约数的算法其计算原理依赖于下面的定理:定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。最大公约数(greatest common divisor)缩写为gcd。即:gcd(a,b) = gcd(b,a mod b) (不妨设a>b 且r=a mod b ,r不为

2017-05-04 09:19:37 810

原创 数论常用内容——整除

说到整除,我们应该先来明确一下整除的定义:若整数a除以非零整数b,商为整数,且余数为零, 我们就说a能被b整除(或说b能整除a),即b∣a,读作“b整除a”或“a能被b整除”。a叫做b的倍数,b叫做a的约数(或因数)。

2017-05-04 08:59:40 4066

原创 C++编程必备神器STL——容器篇

STL是C++内置的标准模板库,其中内置了很多我们常用的数据结构和算法,如果能在日常编程和竞赛编程中合理使用,将会大大提升我们的编程效率,今天博主就来简单介绍一下我们最常用的STL容器及其内部包含的常用方法

2017-05-04 08:47:36 757

原创 HDU 2084 数塔(基础dp)

这题是一个基础动态规划,入门题目,思路很简单,就是从下往上找一条最优路径即可,转移公式也很简单,就是挑最大的情况进行存储。这里博主使用了最基础的二维数组来处理这题,其实这题还可以用一维滚动数组来优化空间,但是鉴于二维数组比较好理解,所以这里我就使用了二维数组处理。

2017-05-03 11:49:02 337

原创 HDU 2037 今年暑假不AC (结构体排序示例题)

本题用到的一个很重要的知识就是结构体排序,对结构体进行排序在竞赛中的使用范围非常的广泛,希望大家可以熟练掌握这项技巧结构体排序有两种写法,详情请看代码#include<stdio.h>#include<algorithm>using namespace std;struct Ti { int s; int e; friend bool operator < (Ti &

2017-05-03 11:44:28 376

原创 埃及分数(迭代加深搜索)

迭代加深搜索,实质上是限定下界的深度优先搜索。即首先允许深度优先搜索K层,若没有发现可行解,再将K+1后重复以上步骤搜索,直到搜索到可行解。迭代搜索深度是一个比较炫酷的搜索方式,不过有点拿时间换空间的感觉。首先迭代深度比较搓的写法是,首先设置一个阀值MaxH,初始为最小值。当在搜索深度Depth <= MaxH时找到解则此时为最优解,否则MaxH++,继续深搜。另外一种比较吊的写法是二分搜索深度,若

2017-05-03 11:40:44 725

原创 hihocoder 1066 无间道(基础并查集)

基础并查集题目,拿来当做并查集上手不错

2017-05-03 11:38:02 362

原创 算数基本定理——素因数分解序列生成

纯粹的质因数分解生成示例程序,之前某次比赛的时候的代码,这里给大家介绍一下算数基本定理吧算术基本定理:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积

2017-05-03 11:33:36 742

原创 HDU 4059 The Boss on Mars(容斥原理+四次方数列求和)

题目求1-n中与n互质的数的4次方之和,即S=a1^4+a2^4+……; a1,a2……均小于等于n且与n互质。基本思路为:先求出1^4+2^4+……n^4然后再减去与n不互质的数的4次方(容斥原理)。代码如下

2017-05-03 11:16:06 683

原创 矩阵快速幂的应用——优化递推过程

矩阵快速幂可用来优化递推矩阵快速幂的实现及一些详细介绍可以参考我的另一篇文章: 数论常用内容——矩阵快速幂首先,需要先构造合适的初始状态(第一个矩阵)然后,利用此矩阵和矩阵乘法的性质,使用快速幂的手段求出之后的状态构造矩阵可以根据矩阵乘法的实现特点来构造,利用合适的性质可以简化运算例如:给出矩阵A,求S = A + A2 + A3 + … + Ak分析:把问题转化以加速,令B = A I

2017-05-03 11:10:29 696

原创 UVA 11426 GCD - Extreme (II)(欧几里得定理+欧拉函数)

解这道题,需要以下几步:1.建立递推关系,s(n)=s(n-1)+gcd(1,n)+gcd(2,n)+……+gcd(n-1,n);2.设f(n)=gcd(1,n)+gcd(2,n)+……+gcd(n-1,n)。gcd(x,n)=i是n的约数(x<n),按照这个约数进行分类。设满足gcd(x,n)=i的有g(n,i)个,则有f(n)=sum(i*g(n,i))。而gcd(x,n)=i等价于gcd(x/

2017-05-03 11:07:36 572

原创 UVA 10881 Piotr's Ants

这是一道非常有意思的题目,乍一看题目描述的过程非常的复杂,直接模拟怕是要出梗。但是,仔细在纸上进行演示和推导后,把两只蚂蚁的相撞看作是两只蚂蚁交换穿过对方并且交换编号即可。不说很难,但是非常有意思,所以在这里做个记录代码如下

2017-05-03 11:04:57 346

原创 UVA 10601 Cubes (Polya定理+Burnside引理)

本题归根结底就是为了求等价类的个数,这里我们需要用到组合数学的知识来解决。 首先介绍一下polya定理和Burnside引理:Burnside定理:设G={a1,a2,…ag}是目标集[1,n]上的置换群。每个置换都写成不相交循环的乘积。也就是在置换ak的作用下不动点的个数,也就是长度为1的循环的个数。通过上述置换的变换操作后可以相等的元素属于同一个等价类。若G将[1,n]划分成l个等价类,则:

2017-05-03 11:00:45 477

原创 POJ 3233 Matrix Power Series(矩阵等比数列求和)

题意就是一个等比数列求和的意思,只不过每一项都是矩阵这里需要进行一下转移矩阵的构造,形成一个递推累加的效果:设 B = (A,I;0,I)则B^(k + 1) = (A^(k + 1),I + A + A^2 + A^3 + … + A^k;0,I)原题可解,代码如下

2017-05-03 10:48:11 671

JMLR Dropout论文

一篇关于CNN中有效避免过拟合的方法——dropout原理的论文,详细介绍了原理及其效果,对深入理解dropout方法十分有帮助

2018-12-30

空空如也

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

TA关注的人

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