jr的数学の的奇妙冒险-1

小骑士可爱捏 / 2024-11-07 / 原文

本博客主要记录了一名菜鸡蒟蒻学数学的一些记录.

更新日志:

Upd2024-11-2:关于二项式定理新增了一些『特殊性质』.

观前提醒:

本蒟蒻数学不好,加上表达能力较差,清多多谅解qwq.

1.自然数A的全体约数之和:

如果存在自然数A,那么我们定义A的质因子分别为 \({p_1,p_2,...,p_k}\) ,被拆解的次数分别为 \({a_1,a_2,...,a_k}\).根据唯一分解定理,A可以被表示为:

\[A = p_1^{a_1} \cdot p_2^{a_2} \cdot p_3^{a_3} \cdot ... \cdot p_k^{a_k} \]

那么知道了这个,跟约数之和有什么关系呢?

前置:自然数A的约数个数:

先举一个例子,前面提到的条件里, \(p_1^{a_1}\) 有多少个约数?

根据约数的定义,我们可以很快得出分别为 \(p_1^0,p_1^1,...p_1^{a_1}\),总共 \((a_1 + 1)\) 个.

这是一个例子,且仅当 \(p_1\) 是一个质数.

可是,合数是可以被拆为多个质数的,是不是意味着,质因子之间的约数相乘的结果也是该合数的约数?

这个原因很好解释.因为 \(p_i\) 是A的约数,\(p_i^{a_i}\) 中包含 \(p_i\),所以 \(p_i^{a_i}\) 也是A的约数.

因为,质因子之间互不影响,所以可以利用乘法原理求解.可得出总约数个数为:

\[(a_1+1)(a_2+1)(a_3+1)...(a_k+1) = \prod_{i = 1}^{i \le n} (a_i + 1) \]

----------------------------------------------------------分割线-----------------------------------------------------------------------------

现在,我们回到题目,同时我们也得知了A的约数是由A的各个 \(p_i^{a_i}\) 的约数中挑选相乘得来的.

注, \(p_i^0\) 也是约数,如果每个都只选零次方,那么也只记作一种.

从约数总个数公式中能得出有 \((a_1 + 1)(a_2 + 1)(a_3 + 1)...(a_k + 1)\) 种选法,那么根据定义就能推出A的全体约数和为:

\[(p_1^0 + p_1^1 + ... + p_1^{a_1})(p_2^0 + p_2^1 + ... + p_2^{a_2})...(p_k^0 + p_k^1 +... + p_k^{a_k}) = \prod_{i = 1}^{k} (\sum_{j = 0}^{a_i} p_i^{j}) \]

2.等比数列求和与求和公式:

这个...相信学过OI的人都会吧...

观察这么一组数据:1,3,9,27,... 是不发现相邻两个数的商是一样的?那么像这样的数列,我们就称之为等比数列.
其中,数列的第一个数称为首项,最后一个数称为末项,而相邻两个数的商则称之为公比.

这里有我的一个问题,"等比"这个名字应该是指两个相邻的数比值相同,而不是"商相同".而且应该是后面的与前面的比值.

那么,有了数列,怎么求出前n个数的和呢?

如果我们知道了一个数列的首项a(从第零个开始)和公比q,那么第n个数是不是可以写为 \(a \cdot q^{n}\)

好,既然知道可以这样写,那么这个就是我们的突破点!

  • \(S_n\) 表示等比数列前n项的和,即 \(a_0 + a_1 + ... + a_n\).

  • 因为每个项都包含了因数a,所以提取公因式后则变为了 \(a(q^0 + q^1 + ... + q^n)\).

  • \(S_n\) 乘上一个q,式子则变为了 \(q \cdot S_n = a(q^1 + q^2 + ... + q^{n + 1})\).

  • 将变式与原式相减,则得到了 \((q - 1)S_n = a(q^{n + 1} - 1)\).

  • 去掉 \((q - 1)\),我们就得到了 \(S_n = \frac{a(q^{n + 1} - 1)}{(q - 1)}\).

你,听懂了吗?

二项式,三项式与多项式:

二项式&三项式:

杨辉三角,作为我们中国人的发明,相信各位都有所了解.

在你查关于杨辉三角资料时,或许会听到"二项式定理"这个词条,你可能不在意,但这个可是和杨辉三角的推导有重要的关联.

先来看一个式子,如何求解出 \((x + y)^n\)?

如果你没有数论基础,是不是会这样求:

#include<bits/stdc++.h>
using namespace std;
long long x,y,n;
int main(){
	cin >> x >> y >> n;
	cout<<pow(x + y,n);
    return 0;
}

好处是,代码简洁且容易写.
坏处是,代码适用范围小,n太大不行.

可如果你学了快速幂的话,你还可以这样求:

#include<bits/stdc++.h>
using namespace std;
long long x,y,n;
long long pow_n(long long a,long long b){
	long long res = 1;
	while(b){
		if(b & 1) res = res * a;
		a = a * a;
		b >>= 1;
	}
	return res;
}
int main(){
	cin >> x >> y >> n;
	cout<<pow_n(x + y,n);
    return 0;
}

是不是感觉够用了?那暴力美学在你这可谓是发挥的淋漓尽致.

\((x + y)^n\) 就是由 \(n\)\((x + y)\) 相乘的乘积.在展开时,需要将括号里的值与外面的数相乘.
\((x + y)(x + y)\) 展开为 \(x^2 + xy + xy + y^2\),第一二个括号内,你都可以选择选x还是选y与外面相乘.

那么,这不就成决策了吗?

根据乘法原理,总共有 \(2^n\) 种可能,其中不同括号选不同的值算一种不同的可能.比如
\((x+y)^3 = (x+y)(x+y)(x+y)\),如果有两种可能都是选了 2个x,1个y,但顺
序不一样,那么我们也算其为两种不同的可能.

如果我们定义 i 为某种可能里x的次数,那么在n个数中选i个数有多少种可能呢?.

那么,排列组合启动!

在二项式中,我们通常定义 \(\binom{n}{r} = C^{r}_n = \frac{n!}{r!(n - r)!}\)

你可以通俗易懂地理解为 \(C^n_r\),而他也有一个独特的名字————二项式系数.

现在有了可以一次性求出某个次数下的可能数,就可以开始枚举次数了!

那么现在的二项式展开就变为了:

\[(x+y)^n = \binom{n}{0}x^0y^n + \binom{n}{1}xy^{n - 1} + \binom{n}{2}x^2y^{n - 2} + ... + \binom{n}{n}x^ny^0 = \sum_{i = 0}^{n} \binom{n}{i} x^i y^{n - i} \]

怎么样?这就是数学的魅力

那么如果换到三项式,我们则需要枚举两个未知数的次数,则展开为:

\[(x+y+z)^n = \binom{n}{0} \binom{n}{0} x^0y^0z^n + \binom{n}{0} \binom{n}{1} x^0y^1z^{n - 1} + ... + \binom{n}{0} \binom{n}{n} x^0y^nz^0 + \binom{n}{1} \binom{n - 1}{0} x^1y^0z^{n - 1} \]

\[= \sum_{i = 0}^{n} \sum_{j = 0}^{n - i} \binom{n}{i} \binom{n-i}{j} x^iy^jz^{n - i - j} \]

是不是很神奇?

特殊性质:

1.由于 \(\binom{n}{i}\) 的本质就是 \(C_{n}^{i}\).所以在二项式定理中,也满足 \(\binom{n}{i} = \binom{n}{n - i}\).

2.如果用集合的方式描述,那么 \(\binom{n}{i}\) 就是n元集合的i元子集,因此满足 \(\binom{n}{0} + \binom{n}{1} +...+\binom{n}{n} = \sum_{i = 0}^n \binom{n}{i} = 2^n\).

3.满足 \(\binom{n}{0} - \binom{n}{1} + \binom{n}{2} + ... + (-1)^n \cdot \binom{n}{n} = 0\) 且满足 \(n \in \mathbb{\mathbb{N} }\).

解释:原式可以通过二项式定理展开得到 \((1 - 1)^n\) ,而这个式子的结果也恰恰等于0.

4.存在 \(\forall n \in \mathbb{N} \Longrightarrow \sum_{i = 0}^{n} \binom{n}{i}^2 = \binom{2n}{n}\) .

解释:\(\binom{2n}{n}\) 可以理解为将2n分为两端长度为n的序列,一段选i个元素,另一段选n - i个元素.

根据特殊性质一,可得 \(\binom{n}{i} = \binom{n}{n - i}\).两个部分相乘,结果就为 \(\binom{n}{i}^2\),至此问题解决.

最终的挑战:n项式

既然二项式三项式都被攻破,那么我们不妨来看看n项式

n项式的形式为 \((x_1 + x_2 +...+x_t)^n\).

回到二项式推导时的思想,我们枚举了每个数的次数,并计算了出现的方案数.那么到了n项式,我们也效仿一下思路:

定义 \(n_i(i = 1,2,...,t)\)\(x_i\) 的次数,且保证 \(n_1+n_2+...+n_t = n\)

考虑取到 \(n_1\)\(x_1\) 的方案数,结果为 \(\binom{n}{n_1}\).

\(\binom{n}{n_1}\) 个方案中考虑取到 \(n_2\)\(x_1\) 的方案数.因为选了 \(n_1\) 个,所以结果为 \(\binom{n - n_1}{n_2}\).

所以 \(\binom{n}{n_1} \binom{n - n_1}{n_2}\) 就为既能取 \(n_1\)\(x_1\) 又能取 \(n_2\)\(x_2\)的方案数。

以此类推,能取 \(n_i\)\(x_i(i = 1,2,...,t)\) 的方案数则为:

\[\binom{n}{n_1} \binom{n - n_1}{n_2} ... \binom{n - n_1 - n_2-...-n_{t - 1}}{n_t} = \frac{n!}{n_1!(n - n_1)!} \frac{(n - n_1)!}{n_2!(n - n_1 - n_2)!}...\frac{(n - n_1 - n_2-...-n_{t - 1})!}{n_t!0!} \]

\[= \frac{n!}{n_1!n_2!...n_t!} \]

\(0! = (n - n_1 - n_2-...-n_t)! = 0!\),满足了 \(n_1+n_2+...+n_t = n\) 的定义.

我们知道了每种方案,也知道了每种方案的方案数.至此,问题解决.

\[(x_1+x_2+...+x_t)^n = \sum_{n_i \ge 0,n_1+n_2+...+n_t = n} \frac{n!}{n_1!n_2!...n_t!} \prod_{i = 1}^{t}x_i^{n_i} \]

其中\(\sum_{n_i \ge 0,n_1+n_2+...+n_t = n}\)是指所有满足 \(n_1+n_2+...+n_t = n\)\(n_1,n_2,...,n_t\) 带入到后面求和.

\(\frac{!n}{n_1!n_2!...n_t!}\) 被称为多项式系数,一般记作 \(\binom{n}{n_1,n_2,...n_r}\).其中 \(n_1+...+n_r = n\).

特殊性质:

t为2时,得到:

\[(x_1+x_2)^n = \sum_{n_i \ge 0,n_1+n_2 = n} \frac{n!}{n_1!n_2!} x_1^{n_1}x_2^{n_2} = \sum_{n_i \ge 0,n_1+n_2 = n} \frac{n!}{n_1!(n - n_1)!} x_1^{n_1}x_2^{n - n_1} = \sum_{n_1 = 0}^n \frac{n!}{n_1!(n - n_1)!} x_1^{n_1}x_2^{n - n_1} \]

即二项式定理.

谢谢观看QWQ!

参考文献:

百度百科-约数和定理

百度百科-约数个数定理

百度百科-多项式定理

Bilibili-多项式定理