数论基础2

本文详细介绍了计数与概率的基础概念,包括杨辉三角、二项式定理、加法与乘法原理、容斥原理、有重复元素的全排列和组合、数学期望等,以及在数学期望问题中的应用,如汉诺塔、Fibonacci数列和Catalan数的递推关系。
摘要由CSDN通过智能技术生成

目录

2.计数与概率基础

2.1杨辉三角与二项式定理

2.2数论中的计数问题

2.3编码与解码

2.4离散概率初步

3.其他数学

3.1递推

3.2数学期望


2.计数与概率基础

加法原理:完成一个事情有n种方法 ,第i个方法有ai种方案,则一共有a1 + a2 + ... an种方法

乘法原理:完成一个事情有n个步骤 ,第i个步骤有bi种方案,则一共有b1 * b2 * ... bn种方法

容斥原理:假设一个班有10个学生喜欢a,15个学生喜欢b,20个学生喜欢c,设喜欢a, b, c的学生为集合A, B, C,则班里一共有A + B + C - A∩B - A∩C - B∩C + A∩B∩C

即A∪B∪C = A + B + C - A∩B - A∩C - B∩C + A∩B∩C,对于等式右边集合个数为奇数时,符号为正,偶数时符号为负

有重复元素的全排列:假设有k个元素,第i个元素有ai个,求全排列个数

设全排列个数为x,则有a1! * a2! *....ak! * x = (a1 + a2 + ... an)!, 所以 x = (a1 + a2 + ... an)!/a1! * a2! *....ak!

可重复选择的组合:有n个不同元素, 每个元素都可以多次选择,一共选k个元素,则有多少种方法,例如,n = 3, k =2时,有6种:(1, 1) (1, 2) (1, 3) (2, 2) (2, 3) (3, 3)

设第i个元素选xi遍,则x1 + x2 + ... xn = k, 即(x1 +1) + (x2 + 1) + ... + (xn + 1) = k + n

也就是把k+n个1分成n个部分的方案数,想象k + n个1排成一排,放分割线把他们分成n个部分

则原问题的方法数 x = C(k+n-1, n-1) = C(n+k-1, k)

2.1杨辉三角与二项式定理

对于给定n,如何求出(a + b)n次方中所有项的系数呢?

一个方法是递推,模拟杨辉三角:

for(int i = 0; i <= n; i++)
{
    C[i][0] = 1;
    for(int j = 1; j <= i; j++)
    C[i][j] = C[i-1][j-1] + C[i-1][j];
}

时间复杂度O(n*n)

另一种方法是利用等式1,等式1可以由等式2证明

根据等式1,从Cn0 = 1 开始递推

for(int i = 1; i <= n; i++)
C[i] = C[i-1]*(n-i+1)/i;

2.2数论中的计数问题

约数的个数:给出正整数n,可以求出n的唯一分解式n = p1的a1次方 + p2的a2次方 + ... + pk的ak次方,对于n的任意正约数也只能包含p1, p2等素因子,而不能有新的素因子出现,对于n的任意一个素因子,它在所求的约数中的指数可以是0, 1, 2,...,ai共ai + 1中情况,且不同素因子相互独立,所有可以根据乘法原理,n的正约数个数为:(a1+1) * ( a2 + 1) * ... * (ak + 1)

小于n且于n互素的整数个数:给出正整数n,可以求出n的唯一分解式n = p1的a1次方 + p2的a2次方 + ... + pk的ak次方,求1, 2, .... n中与n互素的个数

根据容斥原理,设答案为x ,则x = n - n/p1-n/p2 - ... n/pk +n/(p1*p2) + n/(p1*p3) + ... n/(pk-1*pk)

小于n且与n互素的整数个数也就是欧拉函数,即等式1,讲等式1化简下得到等式2

1-n中所有数的欧拉phi函数值

void phi_table(int n, int* phi)
{
    for(int i = 2; i <= n; i++) phi[i] = 0;
    phi[1] = 1;
    for(int i = 2; i <= n; i++) 
        if(!phi[i]) for(int j = i; j <= n; j +=i)
        {
            if(!phi[j]) phi[j] = j;
            phi[j] = phi[j] / i * (i-1);
        }
}

2.3编码与解码

两个a,一个b和一个c组成的所有串可以按照字典序编号为:

aabc(1), aacb(2),  abac(3)...cbaa(12),对于有重复元素的全排列:

设全排列个数为x,则有a1! * a2! *....ak! * x = (a1 + a2 + ... an)!, 所以 x = (a1 + a2 + ... an)!/a1! * a2! *....ak!

设f(x)为全排列,d(caba) = f(cba) + f(caa) + f(b) = 3 + 6 + 1 = 10,比cbba小的排列有10个,2.所以对cbba的编码是11,f(cba)为cba的全排列的个数,

2.4离散概率初步

如果样本空间由有限个等概率的简单事件组成,事件E的概率可以由组合计数的方法得到:P(E)=E/S

一个房间里有23个人,至少有两个的生日不同的概率是多少,简单起见,先不考虑2月29日

P(E) = E/S = (S - E')/S = 1 - P365选23/365的二十三次方

这里概率是实数,次方数到了23,得解决溢出问题,解决方案是边乘边除

double birthday(int n, int m)
{
    double ans = 1.0;
    for(int i=0;i<m;i++) ans *= (double)(n-i) / n;
    return 1 - ans;
}

条件概率:P(A|B) = P(AB) | P(B)当AB独立时,P(AB) = P(A) * P(B)

贝叶斯公式: P(A|B) = P(B|A) * P(A) / P(B)

全概率公式:P(A) = P(A|B1)*P(B1) + P(A|B2) * P(B2) + ... + P(A|Bn)*P(Bn)

3.其他数学

3.1递推

汉诺塔问题和Fibonacci数列

Catalan数 给一个凸n边形,用n-3条不相交的对角线把他分成n-2个三角形,求不同的方法数

设答案为f(n),按照顺序把顶点编号为V1, V2, ... Vn,

以三角形V1VkVn为界,将n边形分成两部分,一部分是k边形,另一部分是n-k+1边形

f(n) = f(2)f(n-1) + f(3)f(n-2) + ... + f(n-1)f(2)

另一种方法是以边V1Vk为界,同样是分成两部分,不过以边为分界线会计算重复,共有n-3条对角线,会被多计算2n-6次,

f(n) = (f(3)f(n-1) + f(4)f(n-2) + ... + f(n-1)f(3))*n / (2n-6)

与方法一的递推式比较 f(n) = f(2)f(n-1) + f(3)f(n-2) + ... + f(n-1)f(2),化简可得

f(n+1) = f(n) + f(n)*(2n - 6) / n + f(n) = ((4n-6)/n) * f(n)

这个数列也被称为Catalan数

3.2数学期望

简单地说,随机变量X的数学期望EX就是所有可能值按照概率加权的和

在解决和数学期望相关的问题时,思路可以是:计算出所有可能取值, 以及对应的概率, 最后加权求和

期望的线性性质:有限个随机变量之和的数学期望等于每个随机变量的数学期望之和。例如,对于两个随机变量X和Y,E(X+Y) = EX + EY

全期望公式:类似全概率公式,把所有情况不重复,不遗漏地分成若干类,每类计算数学期望,然后把这些数学期望按照每类的概率加权求和

3.3连续概率

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值