From 075c3abf88b10caff38408d717bb6375c9d5ba38 Mon Sep 17 00:00:00 2001 From: Yudong Jin Date: Fri, 21 Jul 2023 21:56:14 +0800 Subject: [PATCH] Add the section of max product cutting problem. (#642) --- .../chapter_greedy/max_product_cutting.cpp | 39 +++++ .../chapter_greedy/max_product_cutting.java | 40 +++++ .../chapter_greedy/max_product_cutting.py | 33 ++++ .../max_product_cutting_definition.png | Bin 0 -> 42098 bytes ...max_product_cutting_greedy_calculation.png | Bin 0 -> 32246 bytes .../max_product_cutting_greedy_infer1.png | Bin 0 -> 39518 bytes .../max_product_cutting_greedy_infer2.png | Bin 0 -> 37269 bytes .../max_product_cutting_greedy_infer3.png | Bin 0 -> 39437 bytes .../max_product_cutting_problem.md | 149 ++++++++++++++++++ mkdocs.yml | 2 + 10 files changed, 263 insertions(+) create mode 100644 codes/cpp/chapter_greedy/max_product_cutting.cpp create mode 100644 codes/java/chapter_greedy/max_product_cutting.java create mode 100644 codes/python/chapter_greedy/max_product_cutting.py create mode 100644 docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_definition.png create mode 100644 docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_calculation.png create mode 100644 docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_infer1.png create mode 100644 docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_infer2.png create mode 100644 docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_infer3.png create mode 100644 docs/chapter_greedy/max_product_cutting_problem.md diff --git a/codes/cpp/chapter_greedy/max_product_cutting.cpp b/codes/cpp/chapter_greedy/max_product_cutting.cpp new file mode 100644 index 000000000..9a7287cd4 --- /dev/null +++ b/codes/cpp/chapter_greedy/max_product_cutting.cpp @@ -0,0 +1,39 @@ +/** + * File: max_product_cutting.cpp + * Created Time: 2023-07-21 + * Author: Krahets (krahets@163.com) + */ + +#include "../utils/common.hpp" + +/* 最大切分乘积:贪心 */ +int maxProductCutting(int n) { + // 当 n <= 3 时,必须切分出一个 1 + if (n <= 3) { + return 1 * (n - 1); + } + // 贪心地切分出 3 ,a 为 3 的个数,b 为余数 + int a = n / 3; + int b = n % 3; + if (b == 1) { + // 当余数为 1 时,将一对 1 * 3 转化为 2 * 2 + return (int)pow(3, a - 1) * 2 * 2; + } + if (b == 2) { + // 当余数为 2 时,不做处理 + return (int)pow(3, a) * 2; + } + // 当余数为 0 时,不做处理 + return (int)pow(3, a); +} + +/* Driver Code */ +int main() { + int n = 58; + + // 贪心算法 + int res = maxProductCutting(n); + cout << "最大切分乘积为" << res << endl; + + return 0; +} diff --git a/codes/java/chapter_greedy/max_product_cutting.java b/codes/java/chapter_greedy/max_product_cutting.java new file mode 100644 index 000000000..bdc27c667 --- /dev/null +++ b/codes/java/chapter_greedy/max_product_cutting.java @@ -0,0 +1,40 @@ +/** + * File: max_product_cutting.java + * Created Time: 2023-07-21 + * Author: Krahets (krahets@163.com) + */ + +package chapter_greedy; + +import java.lang.Math; + +public class max_product_cutting { + /* 最大切分乘积:贪心 */ + public static int maxProductCutting(int n) { + // 当 n <= 3 时,必须切分出一个 1 + if (n <= 3) { + return 1 * (n - 1); + } + // 贪心地切分出 3 ,a 为 3 的个数,b 为余数 + int a = n / 3; + int b = n % 3; + if (b == 1) { + // 当余数为 1 时,将一对 1 * 3 转化为 2 * 2 + return (int) Math.pow(3, a - 1) * 2 * 2; + } + if (b == 2) { + // 当余数为 2 时,不做处理 + return (int) Math.pow(3, a) * 2; + } + // 当余数为 0 时,不做处理 + return (int) Math.pow(3, a); + } + + public static void main(String[] args) { + int n = 58; + + // 贪心算法 + int res = maxProductCutting(n); + System.out.println("最大切分乘积为" + res); + } +} diff --git a/codes/python/chapter_greedy/max_product_cutting.py b/codes/python/chapter_greedy/max_product_cutting.py new file mode 100644 index 000000000..921a35459 --- /dev/null +++ b/codes/python/chapter_greedy/max_product_cutting.py @@ -0,0 +1,33 @@ +""" +File: max_product_cutting.py +Created Time: 2023-07-21 +Author: Krahets (krahets@163.com) +""" + +import math + + +def max_product_cutting(n: int) -> int: + """最大切分乘积:贪心""" + # 当 n <= 3 时,必须切分出一个 1 + if n <= 3: + return 1 * (n - 1) + # 贪心地切分出 3 ,a 为 3 的个数,b 为余数 + a, b = n // 3, n % 3 + if b == 1: + # 当余数为 1 时,将一对 1 * 3 转化为 2 * 2 + return int(math.pow(3, a - 1)) * 2 * 2 + if b == 2: + # 当余数为 2 时,不做处理 + return int(math.pow(3, a)) * 2 + # 当余数为 0 时,不做处理 + return int(math.pow(3, a)) + + +"""Driver Code""" +if __name__ == "__main__": + n = 58 + + # 贪心算法 + res = max_product_cutting(n) + print(f"最大切分乘积为 {res}") diff --git a/docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_definition.png b/docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_definition.png new file mode 100644 index 0000000000000000000000000000000000000000..9c8d1c15148b66e3382e05699de2a1fa7be5438f GIT binary patch literal 42098 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 z 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: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 GUi?3}x%aF9 literal 0 HcmV?d00001 diff --git a/docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_infer2.png b/docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_infer2.png new file mode 100644 index 0000000000000000000000000000000000000000..25febf38c8e77b03589b4f0a3630687a14af6404 GIT binary patch literal 37269 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≤^HhV(iJGlYpk2v2*6z$oLf`aT^PZyP# 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 literal 0 HcmV?d00001 diff --git a/docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_infer3.png b/docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_infer3.png new file mode 100644 index 0000000000000000000000000000000000000000..1f06284ff6b0010e61831e85d7873027081dd2ce GIT binary patch literal 39437 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 2 \times 2 \times 2$ 。**这意味着切分出 $3$ 比切分出 $2$ 更优**。 + +**贪心策略二**:在切分方案中,最多只应存在两个 $2$ 。因为三个 $2$ 可以被替换为两个 $3$ ,从而获得更大的乘积。 + +![最优切分因子](max_product_cutting_problem.assets/max_product_cutting_greedy_infer3.png) + +总结以上,可推出贪心策略: + +1. 输入整数 $n$ ,从其不断地切分出因子 $3$ ,直至余数为 $0$ , $1$ , $2$ 。 +2. 当余数为 $0$ 时,代表 $n$ 是 $3$ 的倍数,因此不做任何处理。 +3. 当余数为 $2$ 时,不继续划分,保留之。 +4. 当余数为 $1$ 时,由于 $2 \times 2 > 1 \times 3$ ,因此应将最后一个 $3$ 替换为 $2$ 。 + +### 代码实现 + +在代码中,我们无需开启循环来切分,可以直接利用向下整除得到 $3$ 的个数 $a$ ,用取模运算得到余数 $b$ ,即: + +$$ +n = 3 a + b +$$ + +需要单独处理边界情况:当 $n \leq 3$ 时,必须拆分出一个 $1$ ,乘积为 $1 \times (n - 1)$ 。 + +=== "Java" + + ```java title="max_product_cutting.java" + [class]{max_product_cutting}-[func]{maxProductCutting} + ``` + +=== "C++" + + ```cpp title="max_product_cutting.cpp" + [class]{}-[func]{maxProductCutting} + ``` + +=== "Python" + + ```python title="max_product_cutting.py" + [class]{}-[func]{max_product_cutting} + ``` + +=== "Go" + + ```go title="max_product_cutting.go" + [class]{}-[func]{maxProductCutting} + ``` + +=== "JavaScript" + + ```javascript title="max_product_cutting.js" + [class]{}-[func]{maxProductCutting} + ``` + +=== "TypeScript" + + ```typescript title="max_product_cutting.ts" + [class]{}-[func]{maxProductCutting} + ``` + +=== "C" + + ```c title="max_product_cutting.c" + [class]{}-[func]{maxProductCutting} + ``` + +=== "C#" + + ```csharp title="max_product_cutting.cs" + [class]{max_product_cutting}-[func]{maxProductCutting} + ``` + +=== "Swift" + + ```swift title="max_product_cutting.swift" + [class]{}-[func]{maxProductCutting} + ``` + +=== "Zig" + + ```zig title="max_product_cutting.zig" + [class]{}-[func]{maxProductCutting} + ``` + +=== "Dart" + + ```dart title="max_product_cutting.dart" + [class]{}-[func]{maxProductCutting} + ``` + +![最大切分乘积的计算方法](max_product_cutting_problem.assets/max_product_cutting_greedy_calculation.png) + +**时间复杂度取决于编程语言的幂运算的实现方法**。以 Python 为例,常用的幂计算函数有三种: + +- 运算符 `**` 和函数 `pow()` 的时间复杂度均为 $O(\log⁡ a)$ ; +- 函数 `math.pow()` 内部调用 C 语言库的 `pow()` 函数,其执行浮点取幂,时间复杂度为 $O(1)$ 。 + +变量 $a$ , $b$ 使用常数大小的额外空间,**因此空间复杂度为 $O(1)$** 。 + +### 第三步:正确性证明 + +使用反证法,只分析 $n \geq 3$ 的情况。 + +1. **所有因子 $\leq 3$** :假设最优切分方案中存在 $\geq 4$ 的因子 $x$ ,那么一定可以将其继续划分为 $2(x-2)$ ,从而获得更大的乘积。这与假设矛盾。 +2. **切分方案不包含 $1$** :假设最优切分方案中存在一个因子 $1$ ,那么它一定可以合并入另外一个因子中,以获取更大乘积。这与假设矛盾。 +3. **切分方案最多包含两个 $2$** :假设最优切分方案中包含三个 $2$ ,那么一定可以替换为两个 $3$ ,乘积更大。这与假设矛盾。 diff --git a/mkdocs.yml b/mkdocs.yml index b79ebcd4d..93c0fc5b8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -271,6 +271,8 @@ nav: - 15.2.   分数背包问题: chapter_greedy/fractional_knapsack_problem.md # [status: new] - 15.3.   最大容量问题: chapter_greedy/max_capacity_problem.md + # [status: new] + - 15.4.   最大切分乘积问题: chapter_greedy/max_product_cutting_problem.md - 16.   附录: # [icon: material/help-circle-outline] - chapter_appendix/index.md