---
# System prepended metadata

title: 算幾不等式
tags: [math]

---

> [time=Fri, Oct 27, 2023 2:31 PM]

# 算幾不等式

[toc]

## 證明

**Statement.** Let $a_1,a_2,\dots,a_k \in \mathbb N$, denote $A,G$ as the arithmetic mean and geometric mean of $a_1,a_2,\dots,a_k$,respectively. Then $A \ge G$ 

**Proof.**
> Claim: $k = 2^n, n \in \mathbb{N}$, the inequality hold

Proof of claim: let $n = 1$, then by $(\sqrt{a_2}-\sqrt{a_1})^2 \ge 0$, we have $\frac{1}{2}(a_1+a_2) \ge \sqrt{a_1a_2}$. Hence the claim hold.

Suppose at some value of $n$, this claim hold, namely,
$$A=\frac{a_1+a_2+\dots+a_{2^n}}{2^n} \ge \left(a_1a_2\dots a_{2^n}\right)^{1/2^n}=GM$$
Then, for case $n+1$
$$\begin{align}  \\
A & = \frac{a_1+a_2+\dots+a_{2^n}+a_{2^n+1}+\dots+a_{2^n+1}+a_{2^{n+1}}}{2^{n+1}} \\
&= \frac{1}{2}\left(\frac{a_1+a_2+\dots+a_{2^n}}{2^n}\right) + \frac{1}{2}\left(\frac{a_{2^n+1}+\dots+a_{2^n+1}+a_{2^{n+1}}}{2^n}\right)\\
& \ge \sqrt{(a_1a_2\dots a_{2^n})^{1/2^n}}\cdot \sqrt{(a_{2^n+1} a_{2^n+2} \dots a_{2^{n+1}})^{1/2^n}} \\
&=\left(a_1a_2\dots a_{2^{n+1}}  \right)^{1/{2^{n+1}}} = G
\end{align}$$
Therefore, AM-GM ineq. hold for $k$ as a power of two.

---

For cases where $k \in \mathbb{N}$, choose $n$ such that $2^n \ge k$.
$$\begin{cases}
A = \frac{a_1 + a_2 + \dots + a_k}{k} \\
G = (a_1 a_2 \dots a_k)^{1/k} \\
\end{cases}$$
Consider a true-by-claim inequality, $$\frac{(a_1+a_2+\dots +a_k)+ (a_{k+1} + a_{k+2} + \dots + a_{2^n})}{2^n} \ge (a_1 a_2\dots a_k  a_{k+1}  a_{k+2}  \dots  a_{2^n})^{1/2^n}$$
Take $A = a_{k+1} = a_{k+2} = \dots = a_{2^n}$, we have
$$\begin{align}
\frac{a_1+a_2+\dots + a_k + (2^n-k)A}{2^n} & \ge (a_1 \dots a_k A^{2^n-k})^{1/2^n} \\
\implies A & \ge (a_1 \dots a_k)^{1/2^n} A^{1-{k/2^n}} \\
\implies A & \ge G \text{, by simplification}
\end{align}$$
Q.E.D.

### Remark
這邊，我們有GM <= AM
同樣的，在線性代數我們也有類似表述：
給定方陣$A$, 以及$\lambda \in \sigma(A)$令$$\alpha(\lambda) = \text{dim}(\cup_k {N\left( (\lambda I - A)^k \right) })$$
為代數重數，以及$$g(\lambda) = \text{nullity}(\lambda I - A)$$
為幾何重數，則$$g(\lambda) \le \alpha(\lambda)$$，即 Geometric Multiplicity <= Algebraic Multiplicity

## 應用

分塊算法，sqrt tree, Mo's algorithm 等等都是使用算幾不等式來選分塊的大小，來獲得 $O(\dots \sqrt{n})$ 的複雜度。

## *離散版* 算幾不等式

題目如下：

https://leetcode.cn/problems/jian-sheng-zi-ii-lcof/description/

給你一個正整數 $n$，要求 $\prod a_i$ 的最大值，其中 $a_1 + \dots + a_k = n,\, a_i\in \mathbb{N}, k \in \mathbb{N}$, $k\in \mathbb{N}, k \not = 1$

For generality, 這邊先假設 $k$ 可以等於 $1$
從感性而言，按照傳統的算幾不等式，我們知道把 $n$ 拆成一樣的數字，可以最大化 product
所以可以假設把 $n$ 拆成 $k$ 個一樣的數字，此時乘積為 $\left(n\over k\right)^k$

微分可得 
$${d\over dx}\left(n\over k\right)^k = \left(k\log\left(n\over k\right)\right)\left(n \over k\right)^k \left(\log\left(n\over k\right)-1\right) = 0$$

然後通靈（他是最大值而非最小值的部分）得 $k = {n\over e}$ 時取得最大值 $e^{n\over e}$。這也就是說把數字拆成 $e$ 是最好的。

從理性而言，題目要求我們只能拆成整數，所以上述的討論全然無意義！

所以面對這種題目，我們就只能分情況討論了，嗎？注意到，$e = 2.71827 \approx 3$
所以猜測盡可能把 $n$ 拆成一堆 $3$ 是最好的，得到如下

**Theorem.** 假設 $m$ 是 $n$ 除 $3$ 的餘數。
* 如果 $m = 0$ 則 $n = 3 + \dots + 3$ 為最優拆分。
* 如果 $m = 1$ 則 $n = \underbrace{3 + \dots + 3}_{(n-4)/3} + 4$  為最優拆分。
* 如果 $m = 2$ 則 $n = \underbrace{3 + \dots + 3}_{(n-2)/3} + 2$  為最優拆分。

比方說 $14 = 3+3+3+3+2, 2\cdot 3^4 = 162$  

**Proof.**

* $n$ 的最優拆分中，不包含 $1$ 的數字
proof : 乘 $1$ 沒有幫助 

* $n$ 的最優拆分中，不包含大於 $4$ 的數字
proof : 假設拆分中有 $a\ge 5$ 不妨把 $a$ 再拆成 $3(a-3)$，則顯然有 $3a-9 > a$，因為 $a > {9\over 2}$，因此得到嚴格更優的拆分。

至此，我們知道 $n$ 的最優拆分只會有 $2$, $3$, $4$
因為 $4$ 有最優拆分 $2 + 2$，所以可以把 $4$ 排除，即某個最優拆分只包含 $2, 3$

那麼到底該把 $n$ 拆成多少 $2$ 多少 $3$ 呢？首先從算幾，大概知道不會像是什麼拆成 5 個 2, 17 個 3 這種怪組合，而是盡可能偏好一種數字。至於要偏好哪個數字，不妨把剛剛的函數拉來看。$f(x)$ 是把 $5$ 等分拆成 $x$ 的乘積。

![image](https://hackmd.io/_uploads/H1LAGJa8Wl.png)

直觀理解來看，的確，因為 $2$ 比 $3$ 更遠離 $e$ 所以儘管是從函數圖像上看，拆成一堆 $2$ 不會更好。

最後得到如此結論：拆成一堆 $3$，有剩就留兩個 $2$ 或一個 $2$，取決於 $n$ 除 $3$ 餘幾。

因為要求 $k \not= 1$ 所以 $n$ 很小時，還是一定得拆，所以要做特判的。

```cpp
class Solution {
public:
    int cuttingBamboo(int n) {
        if (n<=3) return n-1;
        int m = n % 3;
        if (m==0) return fastpow(3,n/3);
        else if (m==1) return modmul(4,fastpow(3,(n-4)/3));
        return modmul(2,fastpow(3,(n-2)/3));
    }
};
```




