![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数学
文章平均质量分 73
qian99
这个作者很懒,什么都没留下…
展开
-
简单易懂的主成分分析(PCA)
PCA(Principal Component Analysis)是一种矩阵压缩的算法,在数据分析和机器学习等很多方向都有着应用。这篇文章的主要目的是将这个算法的原理讲的简单易懂,网上很多讲PCA的文章,但是大部分讲的并不够朴素,用了很多公式,很多图解和专有名词,但是在我看来,这些东西并不一定能降低理解这个算法的门槛。所以,这篇文章可能不会有特别严谨的数学推导,我会尽量使用符合人类直观理解的方式来...原创 2020-03-29 15:57:41 · 1048 阅读 · 0 评论 -
简单易懂的特征值与特征向量
特征值与特征向量是线性代数中一个很基础的知识,但是很多人对这两个概念没有一个直观的概念,从直觉上,很难理解这两个东西,只知道公式,但是不知道它代表的意义。当年上现代课的时候,老师根本不会去讲这些东西,只是把公式写出来,各种推导,看的人头疼,最后索性也不去理解了,直接背下来,现在想想,体验实在糟糕,我写这篇文章希望能够帮到对这两个概念有疑惑的小伙伴。当然,为了理解特征值与特征向量,首先要对线性代数...原创 2020-03-14 12:08:19 · 3298 阅读 · 2 评论 -
hdu 2588 GCD(欧拉函数)
题意:求[1,N]中与N的最大公约数大于等于M的数的个数。思路:直接算肯定是不行的。可以枚举下N的因子,那么将在区间[M,N]中的因子X,求所有N/X的欧拉函数的和即为所求。代码:#include#include#include#include#include#include#include#include#include#include#include#defi原创 2014-04-01 17:34:46 · 714 阅读 · 0 评论 -
hdu 3929 Big Coefficients(Lucas定理+容斥原理)
题意:求F(x) = (1+x)^a1 + (1+x)^a2 + ... + (1+x)^am.中系数为奇数的项的个数。思路:由Lucas定理可知,(1+x)^n中奇数项的个数等于2^(n的二进制表示中1的个数)。Lucas定理相关证明可以看这里。然后就是利用容斥原理,把重复的减去,两项相交的结果中奇数项的个数为2^(a[i]&a[j]的二进制表示中1的个数)。需要注意的是,由于偶数个奇数项在原创 2014-03-31 20:52:32 · 1076 阅读 · 0 评论 -
POJ 2888 Magic Bracelet (Polya+欧拉函数+矩阵乘法)
题意:原创 2014-04-16 10:43:52 · 697 阅读 · 0 评论 -
UVA 11255 Necklace(Polya)
题意:求给定颜色数组成的不等价的原创 2014-04-15 18:24:55 · 770 阅读 · 0 评论 -
HDU 2865 Birthday Toy(Polya+矩阵乘法+dp)
题意:要构成一个长度为n原创 2014-04-16 19:10:39 · 853 阅读 · 0 评论 -
hdu 4349 Xiao Ming's Hope(Lucas定理)
题意:求C(n,0),C(n,1),C(n,2)……C(n,n)中奇数的个数。思路:Lucas定理的一个推论,把C(n,m)看做用二进制表示,那么为奇数的条件是n的每一位都大于等于m的对应位,因此答案是2^(n的二进制表示中1的个数)。代码:#include#include#include#include#include#include#include#include#原创 2014-04-01 08:29:19 · 724 阅读 · 0 评论 -
UVA 11883 Repairing a Road (最短路+三分)
题意:原创 2014-05-01 19:08:51 · 970 阅读 · 0 评论 -
UVA 11330 Andy's Shoes(置换)
题意:给出n对不同颜色的鞋子,原创 2014-04-15 14:55:23 · 811 阅读 · 0 评论 -
UVA 11077 Find the Permutations(置换+dp)
题意:将n个数的原创 2014-04-15 08:18:02 · 917 阅读 · 0 评论 -
hdu 3037 Saving Beans(Lucas定理)
题意:把不超过m个物品放到n个位置,有多少种方法。思路:利用插板法可以求出把m个物品放到n个位置的方案数为C(n+m-1,m),不超过m个可以想象成再添加一个位置放那些没有放到n个位置的物品,即C(n+m,m)。剩下的利用Lucas定理就可以求解。代码:#include#include#include#include#include#include#include#inc原创 2014-04-01 08:16:18 · 730 阅读 · 0 评论 -
hdu 4407 Sum(容斥原理)
题意:n个数在一行,有两种操作,一种是求区间[L,R]的数字中与p互质的数的和,另一种是修改某个位置的数。思路:求区间与p互质的数可以转化为总和-不互质的的数的和,这样就可以通过容斥原理求解。至于修改,由于修改次数比较小,把修改存起来,对于每个查询,一个个改过去。代码:#include#include#include#include#include#include#incl原创 2014-04-01 11:09:08 · 792 阅读 · 0 评论 -
hdu 1695 GCD(容斥原理+欧拉函数)
题意:在[1,c]和[1,d]中分别选两个数x,y,求gcd(x,y)==k的数的对数,其中(x,y)与(y,x)为同一种方案。思路:假设c代码:#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f原创 2014-04-01 15:55:53 · 675 阅读 · 0 评论 -
随笔——关于贝叶斯定理
贝叶斯定理是一个很经典的定理,虽然公式很简单,套用起来也很方便,但是还是缺乏一个直观的sense, 似乎很有道理却说不出来,这是一件很难受的事情,今天打算好好聊一聊贝叶斯定理,看看是否可以建立一个直观的感觉。其实,画图是一个很好理解数学公式的方法,如果各种公式都能变成一个简单的图像存在人的大脑里,那数学学起来应该会轻松很多。既有数字能够入微的计算细节,又有图像能让人把握方向,就很完美了。所以,...原创 2018-09-23 17:53:40 · 1169 阅读 · 1 评论 -
hdu 5088 Revenge of Nim II(高斯消元)
题意:给定n个数,可以取走一些数,使得原创 2014-11-03 20:39:23 · 740 阅读 · 0 评论 -
hdu 1812 Count the Tetris(polya+高精)
题意:给N×N的正方形格子填原创 2014-04-12 12:31:43 · 689 阅读 · 0 评论 -
poj 1286 Necklace of Beads(Polya定理)
题意:用3种颜色给正n边形涂色,问有多少不等价的方案,如原创 2014-04-11 20:18:29 · 669 阅读 · 0 评论 -
zoj 3772 Calculate the Function(矩阵乘法)
题意:原创 2014-04-06 18:50:40 · 882 阅读 · 0 评论 -
CF 407C Curious Array(差分序列)
题意:给出n个数,有m个操作,每个原创 2014-04-04 14:02:03 · 1226 阅读 · 0 评论 -
UVALive 3295 Counting Triangles(组合计数)
题意:给出一个m×n的网格点中能组成的三角形的个数。思路:直接算很难入手,可以发现任意三个点可以组成一个三角形当且仅当三点不共线,因此可以用总的方案数-三点共线的方案数。三点形成的直线是水平或者垂直的很好算。主要问题是不共线的方案的计数,受之前做的UVALive 3295 Counting Triangles的启发,用dp[i][j]表示以(0,0)为左上角,(i,j)为右下角的矩形中三点共原创 2014-03-25 10:42:54 · 903 阅读 · 0 评论 -
UVALive 3720 Highways(组合计数、递推)
题意:n行m列的点阵,问有多少非垂直并且非水平的直线至少穿过点阵中的两个点。思路:第一眼看的时候感觉和一道平面坐标中能看到点的题挺像的,于是按着那题的思路推了个用欧拉公式算的。写完以后发现不对,欧拉公式推的并不能包含所有情况,而且会有重复统计的问题。换个思路,想到了用几个矩阵组合出答案的方法,首先只考虑一个方向的直线(如斜率小于0的),则a[i][j]=a[i-1][j]+a[i][j-1]-原创 2014-03-24 18:29:51 · 874 阅读 · 0 评论 -
UVA 10601 Cubes (Polya计数)
题意:给出原创 2014-04-15 11:06:45 · 800 阅读 · 0 评论 -
UVALive 3641 Leonardo's Notebook (置换)
题意:给出一个置换B,问有没有一个置换A,使得A^2=B。思路:原创 2014-04-14 21:52:41 · 692 阅读 · 0 评论 -
zoj 3690 Choosing number(矩阵乘法+dp)
题意:有n个人,每个人从1~m选一个数,但是相邻的人如果选了一样的数,那么这个数要大于k,问所有的选法。思路:首先用dp[i][j]表示前i个人,第i个人选了第j个数字,那么dp[i][j]=sigma(j=1 to m){dp[i-1][j]} -dp[i-1][j] (jdp[i][j]=sigma(j=1 to m){dp[i-1][j]}(j>k)则前i个人总共的选法为s原创 2014-03-12 20:07:39 · 833 阅读 · 0 评论 -
UVA 10655 Contemplation! Algebra(矩阵乘法)
题意:给出p,q,n,其中p=a+b,q=ab,求a^n+b^n。思路:只要推出递推公式就简单了,比较恶心的是数据不知道怎么出的,判断p、q都为0就break掉会wa,用scanf也wa……下面是推导过程:(a^n+b^n)*(a+b)=a^(n+1)+b^(n+1)+ab^n+ba^na^(n+1)+b^(n+1)=p*(a^n+b^n)-ab(a^(n-1)+b^(n-1))设原创 2014-02-24 17:33:47 · 891 阅读 · 0 评论 -
fzu 1683 纪念SlingShot(矩阵乘法)
题意:给出一个递推式,求前n项和。思路:矩阵上加一维表示前n项的和,接下来递推式都给出了就十分好写了。。代码:#include #include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define Inf 0x3FFFFFF原创 2014-02-23 19:00:41 · 921 阅读 · 0 评论 -
hdu 2294 Pendant(矩阵乘法)
题意:求长度为1~N的项链,用必须用k种珍珠组成的方案数。思路:首先可以想想dp,可以推出dp方程,用dp[i][j]表示长度为i的项链用j种珍珠的方案数。则dp[i][j]=dp[i-1][j]*j+dp[i-1][j-1]*(k-j+1),由于N非常大,因此直接dp是不现实的,因此我们想到了用矩阵乘法加速运算,矩阵A的元素分别是长度为n时用j种的方案数,因此要求的就为A+A^2+A原创 2014-02-23 13:13:20 · 750 阅读 · 0 评论 -
hdu 2276 Kiki & Little Kiki 2(矩阵乘法)
题意:n个灯泡连成一个圈,每过1秒,如果第i个灯泡的左边的灯泡亮着,那么翻转第i个灯泡的亮暗。思路:把当前灯泡的和其左边亮暗情况都列出来,可以发现其下一秒的状态为两数之和对2取模,知道这个就简单了,直接构造矩阵算就行了,不知道为什么我写的矩阵乘法非常慢Orz……代码:#include #include#include#include#include#include#incl原创 2014-02-23 14:16:12 · 659 阅读 · 0 评论 -
CF 392C Yet Another Number Sequence(矩阵乘法)
题意:定义Fi为fibonacci数列的第i项,定义Ai(k)=Fi×i^k(i>=1),求sigma(j=1 to n){Aj(k)}。思路:终于把这道题A了,好开心,矩阵乘法什么的好神奇。。。首先推导一下Ai(k),可以得到:Ai(k) = Fi * i^k = ( Fi-1 + Fi-2 ) * i^k = Fi-1 * [ (i-1) + 1原创 2014-02-21 18:45:21 · 939 阅读 · 0 评论 -
hdu 2604 Queuing(矩阵乘法)
题意:有长度为L的队,每个位置不是男的就是女的,用01表示,问有多少种排列方式不包含000和010这两种状态。思路:最开始是想dp的,dp[i][j]表示前i个人以状态j为结尾的满足条件的排列方式,但是写完以后MLE……无语。。。只好写矩阵乘法,受到dp的启发,我们可以想到这么构造矩阵,当前位置分别以状态00,01,10,11结尾,再添加一个字符会转移到下一个状态,如果转移是合法的,那么对应位原创 2014-02-22 00:05:45 · 694 阅读 · 0 评论 -
poj 3233 Matrix Power Series(矩阵乘法)
题意:给出矩阵A,求A+A^2+A^3+……+A^k。思路:快速幂可以算出A^k。然后看和的长度,如果为偶数,那么结果为A^(k/2)*A(k/2),否则为A^(k-1)+A^k。代码:#include#include#include#include#include#include#include#include#include#include#include#d原创 2014-02-21 20:50:51 · 646 阅读 · 0 评论 -
hdu 2256 Problem of Precision(矩阵乘法)
主要是推公式,表示公式完全推不出来啊= =,看了解题报告才会。。。首先(sqrt(2)+sqrt(3))^2=5+2*sqrt(6)(sqrt(2)+sqrt(3))^2n=(5+2*sqrt(6))^n设(5+2*sqrt(6))^n=An+Bn*sqrt(6) ①则(5-2*sqrt(6))^n=An-Bn*sqrt(6) ②由①②得,(5+2*sqrt(6))^n原创 2014-02-22 11:20:10 · 662 阅读 · 0 评论 -
poj 1320 Street Numbers(解pell方程)
题意:求满足1+2+3+……+(n-1)=(n+1)+(n+2)+……+m的前10项n和m。思路:把公式化简一下,n(n-1)/2=(m-n)(m+n+1)/2,然后可以求出2n^2=m^2+m,给m配方可以得到(2m+1)^2-8n^2=1。设x=2m+1,y=n,这样就变成了x^2-dy^2=1的形式,显然这是个pell 方程。利用迭代公式就可以求解了:Xn=Xn-1 * X1 +dY原创 2014-03-08 15:52:46 · 840 阅读 · 0 评论 -
UVA 11490 Just Another Problem
题意:S个士兵排成r行c列,其中队列中间有两个方队是空出来的,并且这两个方队大小相等,而且方队到四个方向外面的厚度都相同,求所有空出来的方队的情况。思路:在纸上画一画就可以发现S可以写成这样的形式S=6*i*i+7*i*j。这样枚举i就行了。代码:#include#include#include#include#include#include#include原创 2014-03-11 17:18:11 · 664 阅读 · 0 评论 -
poj 1091 跳蚤(分解质因数+容斥)
首先满足要求的解要满足gcd(a1,a2,a3……an,M)=1,也就是求n个小于等于M的数与M的最大公约数的结果为1的组合的个数。找出M的所有质因子,通过容斥原理计算组合总数,所有的组合数为M^N,现在要减去所有组合的结果与M求最大公约数不为1的个数,这样的组合数必须N个数只要含有M的一个质因子,枚举质因子的组合情况,利用容斥原理,奇数个质因子减去,偶数个质因子加上。。。就能得到结果了。还有一点原创 2014-03-07 20:31:10 · 825 阅读 · 0 评论 -
hdu 4405 Aeroplane chess(概率dp)
题意:一个人玩飞行棋,每次走掷的骰子点数歩,地图上有些地方可以直接传送,问期望的掷骰子次数。思路:直接搞就行,没什么坑,遇到有传送的位置直接传就行,刚开始没看到X代码:#pragma comment(linker, "/STACK:102400000,102400000")#include#include#include#include#include#include#i原创 2014-03-18 16:18:00 · 644 阅读 · 0 评论 -
poj 3252 Round Numbers(数位dp+组合计数)
题意:询问区间[L,R]内中的二进制数0>=1的数的个数。思路:网上很多都直接推导一下就算出来了。。。。我只会用数位dp搞一下,再计数Orz……觉得自己数学思维实在太差了、、、、dp[i][j][k]表示当前在第i位,前面的有j个0,有k个1的合法的数有多少个。当前面有1的时候,可以算一下至少需要多少个0才能满足要求,比如现在有n位,至少需要m个0,那么结果就为 Σ{i=m to n}(C[n原创 2014-03-28 20:07:39 · 593 阅读 · 0 评论 -
poj 1019 Number Sequence
题意:[1,i]表示从1到i的数列出来的数列,比如[1,3]是123。现在将[1,i]按顺序列出来,问第n位的数字是什么。思路:我直接模拟的?大概就是把[1,i]作为一组,然后不断减去这一组的长度。然后找到n是在哪个[1,i]中,然后再去里面找。。。看了看网上的代码,貌似没有我这么简单粗暴的,一般都弄了些预处理,还有二分的。。。代码:#include#include#inc原创 2014-03-29 10:10:33 · 562 阅读 · 0 评论 -
poj 2773 Happy 2006(容斥原理)
题意:求和m互质的第k个数是多少。思路:假设我们要求的数是n,那么如何求n之前有多少个数和m互质呢?这个问题直接算不好算,根据减法原理,我们可以求出和m不互质的数,然后用n减去,就可以得到和n互质的数的个数了。假设和m的质因子分别为q1,q2,q3……那么能整除q1的数就有n/q1个,能整除q2的数有n/q2个……将这些数加起来,但是会有重复的,比如能被q1和q2同时整除的被加了两次,这部分要原创 2014-03-29 16:34:33 · 847 阅读 · 0 评论