算法设计与分析所有程序

合集下载

算法分析与设计

算法分析与设计
他把1,2,3,...16 这16个数字填写在4 x 4的方格中。 16 ? ? 13 ? ? 11 ? 9??* ? 15 ? 1
表中有些数字已经显露出来,还有些用?和*代替。 请你计算出? 和 * 所代表的数字。并把 * 所代表的数字作为本题答 案提交。
素数环问题
素数环是一个计算机程序问题,指的是将从1到n这n个整数围成一 个圆环,若其中任意2个相邻的数字相加,结果均为素数,那么这个环 就成为素数环。现在要求输入一个n,求n个数围成一圈有多少种素数 环,规定第一个数字是1。 143256 165234
例如当n=5,m=4时,面值为1,3,11,15,32的5种邮票可以贴 出邮资的最大连续区间是1到70。
➢ 通用的解题法 ➢ 核心在于构造解空间树:
➢ 子集树 ➢ 排列树 ➢ 回溯法是优化的暴力搜索: ➢ 不满足限制条件; ➢ 当前解与最优解进行预计算; ➢ 学习回溯法:心中有树
回溯法
总结
➢ 动态规划适合两个连续步骤之间有联系的问题; ➢ 回溯法几乎适用于所有的问题,但问题之间最好有明确的层次。
总结
➢ 构造心中的解空间树是关键; ➢ 回溯法与函数的局部变量; ➢ 访问解空间树的优化处理;
迷宫问题中的回溯法
➢ 四邻域 ➢ 八邻域
图论问题
无向图: ➢ 连通 ➢ 不连通
有向图: ➢ 弱连通 ➢ 单向连通 ➢ 强连通
最大团问题
连通子图(分支)
最大团问题
给定无向图G=(V,E),如果UV,且对任意的u,vU, 都有(u,v)E,则称U是G的完全子图。G的完全子图U是G 的一个团当且仅当U不包含在G的更大的完全子图中。G中 的最大团是指G中所含顶点数最多的团。
yes no yes
➢ 通用的解题法 ➢ 核心在于构造解空间树:

《算法分析与设计》说课

《算法分析与设计》说课

8
8
8
10
S4
贪心算法
6
6
S5
回溯法
6
8
S6
分支限界
6
8
S7
随机化算法 总学时数
4 40
6 48
说课程教学大纲
5、课外学习内容 分支 限界 算法 设计 分治 分治 最强大脑—数独 阶乘 递归 兔子问题 会场安排问题 国王分财产
银行最优服务次序
回溯 法 贪心 贪心 算法 算法
矩阵连乘 租用游艇 排序问题
•难点模块
分治策略
动态规划 贪心算法
•难点内容
分治策略的应用
分解最优解结构 构造递归关系
回溯法
分支限界法
判断是否满足贪心性质
回溯法--剪枝函数 解空间树
说课导航
说课程教学大纲
说教学资源 说教学方法与手段 说学情与学法指导 说教学过程设计
说考核评价
说教学资源
1、教材选用原则
国家级规划教材 原则
具有先进性、适用性、时效性
汽车加油行驶 网球循环赛比赛日程
动态 规划
充分体现案例驱动、实践导向的设计思想
说课程教学大纲
6、课程重点
•重点模块
递归与分治策略
动态规划算法 贪心算法
•重点内容
二分搜索与排序
矩阵连乘 最长公共子序列
回溯法
分支限界法
最大字段和
0-
说课程教学大纲
7、课程难点
经典教材
说教学资源
王晓东教授编著的 《计算机算法设计与分析》 (C++描述)
说教学资源
2、网络资源
课外学习网站:
/JudgeOnline/problemtypelist.php

计算机算法的设计与分析

计算机算法的设计与分析

计算机算法的设计与分析计算机算法的设计和分析随着计算机技术的不断发展,算法成为了关键的核心技术之一。

算法的设计和分析是指通过一系列的步骤和方法来解决计算机问题的过程。

本文将详细介绍计算机算法的设计和分析。

一、算法设计的步骤:1. 理解和定义问题:首先需要明确所要解决的问题,并对其进行深入的理解,确定问题的输入和输出。

2. 分析问题:对问题进行分析,确定问题的规模、特点和约束条件,以及可能存在的问题解决思路和方法。

3. 设计算法:根据问题的性质和特点,选择合适的算法设计方法,从而得到解决问题的具体算法。

常见的算法设计方法包括贪心算法、分治算法、动态规划算法等。

4. 实现算法:将步骤3中设计的算法转化为计算机程序,并确保程序的正确性和可靠性。

5. 调试和测试算法:对实现的算法进行调试和测试,包括样本测试、边界测试、异常输入测试等,以验证算法的正确性和效率。

二、算法分析的步骤:1. 理解算法的效率:算法的效率是指算法解决问题所需的时间和空间资源。

理解算法的时间复杂度和空间复杂度是进行算法分析的基础。

2. 计算时间复杂度:时间复杂度用来表示算法解决问题所需的时间量级。

常用的时间复杂度包括常数时间O(1)、对数时间O(logn)、线性时间O(n)、平方时间O(n^2)等。

3. 计算空间复杂度:空间复杂度用来表示算法解决问题所需的空间资源量级。

常用的空间复杂度包括常数空间O(1)、线性空间O(n)、指数空间O(2^n)等。

4. 分析算法的最坏情况和平均情况:算法的最坏情况时间复杂度和平均情况时间复杂度是进行算法分析的关键指标。

最坏情况时间复杂度表示在最不利条件下算法所需的时间量级,平均情况时间复杂度表示在一般情况下算法所需的时间量级。

5. 比较算法的优劣:通过对不同算法的时间复杂度和空间复杂度进行分析,可以对算法的优劣进行比较,从而选择合适的算法。

三、常见的算法设计与分析方法:1. 贪心算法:贪心算法通过每一步的选择来寻求最优解,并且这些选择并不依赖于其他选择。

算法设计与分析-王-第1章-算法设计基础

算法设计与分析-王-第1章-算法设计基础

2)有没有已经解决了的类似问题可供借鉴?
1.4 算法设计的一般过程
在模型建立好了以后,应该依据所选定的模型对问 题重新陈述,并考虑下列问题: (1)模型是否清楚地表达了与问题有关的所有重要
的信息?
(2)模型中是否存在与要求的结果相关的数学量? (3)模型是否正确反映了输入、输出的关系? (4)对这个模型处理起来困难吗?
程序设计研究的四个层次:
算法→方法学→语言→工具
理由2:提高分析问题的能力
算法的形式化→思维的逻辑性、条理性
1.2 算法及其重要特性
一、算法以及算法与程序的区别
例:欧几里德算法——辗转相除法求两个自然数 m 和 n 的最大公约数
m n
欧几里德算法
r
1.2 算法及其重要特性
欧几里德算法
① 输入m 和nห้องสมุดไป่ตู้如果m<n,则m、n互换;
对不合法的输入能作出相适应的反映并进行处理。 (2) 健壮性(robustness): 算法对非法输入的抵抗能力, 即对于错误的输入,算法应能识别并做出处理,而不是 产生错误动作或陷入瘫痪。 (3)可读性:算法容易理解和实现,它有助于人们对算 法的理解、调试和修改。 (4) 时间效率高:运行时间短。 (5) 空间效率高:占用的存储空间尽量少。
算法设计与分析
Design and Analysis of Computer Algorithms
高曙
教材:

算法设计与分析(第二版),清华大学出版社,王红梅, 胡明 编著
参考书目:

Introduction to Algorithms, Third Edition, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest,机械工 业出版社,2012

算法设计与分析黄丽韵版

算法设计与分析黄丽韵版

算法设计与分析黄丽韵版(1)用计算机求解问题的步骤:1、问题分析2、数学模型建立3、算法设计与选择4、算法指标5、算法分析6、算法实现7、程序调试8、结果整理文档编制(2)算法定义:算法是指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程(3)算法的三要素1、操作2、控制结构3、数据结构算法具有以下5个属性:有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。

确定性:算法中每一条指令必须有确切的含义。

不存在二义性。

只有一个入口和一个出可行性:一个算法是可行的就是算法描述的操作是可以通过已经实现的基本运算执行有限次来实现的。

输入:一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。

输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。

算法设计的质量指标:正确性:算法应满足具体问题的需求;可读性:算法应该好读,以有利于读者对程序的理解:健壮性:算法应具有容错处理,当输入为非法数据时,算法应对其作出反应,而不是产生莫名其妙的输出结果。

效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。

一般这两者与问题的规模有关。

经常采用的算法主要有迭代法、分而治之法、贪婪法、动态规划法、回溯法、分支限界法迭代法也称“辗转法”,是一种不断用变量的旧值递推出新值的解决问题的方法。

迭代法也称“辗转法”,是一种不断用变量的旧值递推出新值的解决问题的方利用迭代算法解决问题,需要做好以下三个方面的工作:一、确定迭代模型。

在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。

二、建立迭代关系式。

所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。

迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。

三、对迭代过程进行控制。

在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。

《算法设计与分析》(全)

《算法设计与分析》(全)
巢湖学院计算机科学与技术系
1.1、算法与程序
程序:是算法用某种程序设计语言的具体实现。 程序可以不满足算法的性质(4)。 例如操作系统,是一个在无限循环中执行的程序, 因而不是一个算法。 操作系统的各种任务可看成是单独的问题,每一个 问题由操作系统中的一个子程序通过特定的算法来实 现。该子程序得到输出结果后便终止。
渐近分析记号的若干性质
(1)传递性: ➢ f(n)= (g(n)), g(n)= (h(n)) f(n)= (h(n)); ➢ f(n)= O(g(n)), g(n)= O (h(n)) f(n)= O (h(n)); ➢ f(n)= (g(n)), g(n)= (h(n)) f(n)= (h(n)); ➢ f(n)= o(g(n)), g(n)= o(h(n)) f(n)= o(h(n)); ➢ f(n)= (g(n)), g(n)= (h(n)) f(n)= (h(n)); (2)反身性: ➢ f(n)= (f(n));f(n)= O(f(n));f(n)= (f(n)). (3)对称性: ➢ f(n)= (g(n)) g(n)= (f(n)) . (4)互对称性: ➢ f(n)= O(g(n)) g(n)= (f(n)) ; ➢ f(n)= o(g(n)) g(n)= (f(n)) ;
巢湖学院计算机科学与技术系
渐近分析记号的若干性质
规则O(f(n))+O(g(n)) = O(max{f(n),g(n)}) 的证明: ➢ 对于任意f1(n) O(f(n)) ,存在正常数c1和自然数n1,使得对
所有n n1,有f1(n) c1f(n) 。 ➢ 类似地,对于任意g1(n) O(g(n)) ,存在正常数c2和自然数
巢湖学院计算机科学与技术系
第1章 算法引论

算法设计与分析

算法设计与分析

算法设计与分析算法是计算机科学中的核心概念,它是解决问题的一系列步骤和规则的有序集合。

在计算机科学的发展中,算法设计和分析扮演着至关重要的角色。

本文将探讨算法设计和分析的相关概念、技术和重要性。

一、算法设计的基本原则在设计算法时,需要遵循一些基本原则来确保其正确性和有效性:1. 正确性:算法设计应确保能够正确地解决给定的问题,即输出与预期结果一致。

2. 可读性:设计的算法应具有清晰的结构和逻辑,易于理解和维护。

3. 高效性:算法应尽可能地减少时间和空间复杂度,以提高执行效率。

4. 可扩展性:算法应具备良好的扩展性,能够适应问题规模的变化和增长。

5. 可靠性:设计的算法应具备稳定性和鲁棒性,对不同的输入都能给出正确的结果。

二、常见的算法设计技术1. 枚举法:按照规定的顺序逐个尝试所有可能的解,直到找到满足条件的解。

2. 递归法:通过将一个大问题分解成若干个小问题,并通过递归地解决小问题,最终解决整个问题。

3. 贪心算法:在每个阶段选择最优解,以期望通过一系列局部最优解达到全局最优解。

4. 分治算法:将一个大问题划分成多个相互独立的子问题,逐个解决子问题,并将解合并得到整体解。

5. 动态规划:通过将一个大问题分解成多个小问题,并存储已解决子问题的结果,避免重复计算。

三、算法分析的重要性算法分析可以评估算法的效率和性能。

通过算法分析,可以:1. 预测算法在不同规模问题上的表现,帮助选择合适的算法解决具体问题。

2. 比较不同算法在同一问题上的性能,从而选择最优的算法。

3. 评估算法在不同硬件环境和数据集上的表现,选择最适合的算法实现。

四、常见的算法分析方法1. 时间复杂度:衡量算法所需执行时间的增长率,常用的时间复杂度有O(1)、O(log n)、O(n)、O(n log n)和O(n^2)等。

2. 空间复杂度:衡量算法所需占用存储空间的增长率,常用的空间复杂度有O(1)、O(n)和O(n^2)等。

3. 最坏情况分析:对算法在最不利情况下的性能进行分析,可以避免算法性能不稳定的问题。

算法设计与分析(第2版)

算法设计与分析(第2版)
该教材在编写过程中参考了很多同行的教材和络博客,特别是“牛客”中企业面试、笔试题和资源,河南工 程学院张天伍老师和使用该教材第1版的多位老师指正多处问题和错误。
出版工作
2018年8月1日,该教材由清华大学出版社出版。
内容简介
内容简介
全书由12章构成,各章的内容如下。
第1章概论:介绍算法的概念、算法分析方法和STL在算法设计中的应用。
教材目录
教材目录
(注:目录排版顺序为从左列至右列 )
教学资源
教学资源
该教材配有配套教材——《算法设计与分析(第2版)学习与实验指导》,该配套教材涵盖所有练习题、上 机实验题和在线编程题的参考答案。
该教材每个知识点都配套了视频讲解,提供PPT课件、源码、答案、教学大纲、题库、书中全部源程序代码 (在VC++6.0中调试通过)等教学资源。
算法设计与分析(第2版)
20xx年清华大学出版社出版的图书
01 成书过程
03 教材目录源 06 作者简介
基本信息
《算法设计与分析(第2版)》是由李春葆主编,2018年清华大学出版社出版的高等学校数据结构课程系列 教材。该教材适合作为高等院校“算法设计与分析”课程的教材,也可供ACM和各类程序设计竞赛者参考。
第5章回溯法:介绍解空间概念和回溯法算法框架,讨论采用回溯法求解0/1背包问题、装载问题、子集和问 题、n皇后问题、图的m着色问题、任务分配问题、活动安排问题和流水作业调度问题的典型算法。
第6章分枝限界法:介绍分枝限界法的特点和算法框架、队列式分枝限界法和优先队列式分枝限界法,讨论 采用分枝限界法求解0/1背包问题、图的单源最短路径、任务分配问题和流水作业调度问题的典型算法。
该教材介绍了各种常用的算法设计策略,包括递归、分治法、蛮力法、回溯法、分枝限界法、贪心法、动态 规划、概率算法和近似算法等,并讨论了各种图算法和计算几何设计算法。书中配有图表、练习题、上机实验题 和在线编程题。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录第二章递归与分治 (3)1、用递归思想求N! (3)2、用递归思想求Fibonacci数列 (3)3、用递归思想求排列问题 (4)4、用递归思想求整数划分问题 (5)5、用递归思想求汉诺塔问题 (6)6、用递归思想实现插入排序 (7)7、用分治思想实现二分查找 (8)8、用分治法求两个大整数的乘法 (9)9、用分治思想求一个数组的最大值与最小值 (10)10、用分法思想实现合并排序 (12)11、用分治思想实现快速排序 (13)12、用分治法实现线性时间选择问题 (15)13、用分法思想实现残缺棋盘问题 (15)第三章动态规划法 (18)1、矩阵连乘问题 (18)2、最长公子序列 (20)3、最大子段和问题 (23)4、图像压缩问题 (28)5、电路布线问题 (31)6、最 (31)7、最 (31)第四章贪心算法 (32)1、哈夫曼编码 (32)4、Kruskal算法求最小生成树 (35)5、集装箱问题 (38)6、活动安排问题 (40)第五章回溯法 (42)1、用回溯法求0-1背包问题 (42)2、用回溯法求N皇后问题 (45)3、用回溯法求旅行售货员问题 (46)4、用回溯法求圆排列问题 (48)5、用回溯法求符号三角形问题 (50)6、用回溯法求批处理作业调度问题 (52)7、用回溯法求连续邮资问题 (54)8、用回溯法求图的m着色问题 (57)9、用回溯法求最大团问题 (59)第六章回溯法 (62)1、用分支限界法求0-1背包问题 (62)第二章递归与分治1、用递归思想求N!王晓东版——《计算机算法设计与分析(第四版)》P11页,例2-12、用递归思想求Fibonacci数列王晓东版——《计算机算法设计与分析(第四版)》P12页,例2-23、用递归思想求排列问题王晓东版——《计算机算法设计与分析(第四版)》P13页,例2-4N个元素的全排列的个数为:N!本算法非常重要,因为它是很多算法的基础,比如回溯法那章里的算法很多都是以本算法为基础的。

4、用递归思想求整数划分问题王晓东版——《计算机算法设计与分析(第四版)》P14页,例2-5整数划分问题是算法中的一个经典命题之一,有关这个问题的讲述在讲解到递归时基本都将涉及。

所谓整数划分,是指把一个正整数n写成如下形式:n=m1+m2+……+mi; (其中mi为正整数,并且1 <= mi <= n),则{m1,m2,...,mi}为n的一个划分。

如果{m1,m2,...,mi}中的最大值不超过m,即max(m1,m2,...,mi)<=m,则称它属于n的一个m划分。

这里我们记n的m划分的个数为f(n,m);例如,但n=4时,他有5个划分,{4},{3,1},{2,2},{2,1,1},{1,1,1,1};注意4=1+3 和4=3+1被认为是同一个划分。

该问题是求出n的所有划分个数,即f(n, n)。

下面我们考虑求f(n,m)的方法;根据n和m的关系,考虑以下几种情况:(1) 当n=1 时,不论m的值为多少(m>0),只有一种划分即{1};(2) 当m=1 时,不论n的值为多少,只有一种划分即n个1,{1,1, 1, ..., 1 };(3) 当n=m 时,根据划分中是否包含n,可以分为两种情况:(a). 划分中包含n的情况,只有一个即{ n };(b). 划分中不包含n的情况,这时划分中最大的数字也一定比n 小,即n 的所有( n - 1 ) 划分。

因此f(n, n) = 1 + f(n, n-1);(4) 当n < m 时,由于划分中不可能出现负数,因此就相当于f(n, n);(5) 但n > m 时,根据划分中是否包含最大值m,可以分为两种情况:(a). 划分中包含m的情况,即{m,{x1,x2, ...,xi}},其中{x1,x2, ...,xi }的和为n-m,可能再次出现m,因此是(n-m)的m划分,因此这种划分个数为f(n-m, m);(b). 划分中不包含m的情况,则划分中所有值都比m小,即n的(m-1)划分个数为f(n, m - 1);因此f(n, m) = f(n-m, m) + f(n, m-1);综合以上情况,我们可以看出,上面的结论具有递归定义特征,其中(1)和(2)属于回归条件,(3)和(4)属于特殊情况,将会转换为情况(5)。

而情况(5)为通用情况,属于递推的方法,其本质主要是通过减小m以达到回归条件,从而解决问题。

其递推表达式f(n, m) = 1; ( n = 1 or m = 1 )f(n, m) = f(n, n); ( n < m )f(n, m) = 1+ f(n, m - 1); ( n = m )f(n, m) = f(n - m, m) + f(n, m - 1); ( n > m )因此我们可以给出求出f(n, m) 的递归函数代码如下。

怎样求出具体的划分结果呢?这个问题比较难解决,等进一步分析。

5、用递归思想求汉诺塔问题6、用递归思想实现插入排序#include <stdio.h>#include <stdlib.h>#include <time.h>void insertSort(int *aa,int n){if(n>0){n = n-1;insertSort(aa,n);int a= aa[n];int k = n-1;while((k>=0)&& a<aa[k]){aa[k+1] = aa[k];k--;}aa[k+1] = a;}}void main(){int a[10];srand((unsigned int)time(NULL));for(int i=0;i<10;i++){a[i] = rand()%100;printf("%d ",a[i]);}printf("\n");insertSort(a,10);for(i=0;i<10;i++)printf("%d ",a[i]);printf("\n");}7、用分治思想实现二分查找8、用分治法求两个大整数的乘法最简单的方法,这里没有体现分治法的思想9、用分治思想求一个数组的最大值与最小值10、用分法思想实现合并排序11、用分治思想实现快速排序如果每次划分不以a[p]为基准,而是随机从a[p]-a[r]里取一个数为基准,则可以设计如下随12、用分治法实现线性时间选择问题本算法要用到上面快速排序的随机划分算法13、用分法思想实现残缺棋盘问题王晓东版——《计算机算法设计与分析(第四版)》P20页,例2.6注意:同一种形状的骨牌,在填充时数字不一样,关键看三个相同数字摆放位置所构成的形状。

第三章动态规划法1、矩阵连乘问题2、最长公子序列3、最大子段和问题(1)分治思路实现(2)动态规划思路实现补充了书本上不完美的地方:在求最大子段和,随便可以求出最大子段和的起始坐标和终止坐标;在求最大子矩阵和时,可以随便求出子矩阵的左上角和右下角坐标。

4、图像压缩问题王晓东版——《计算机算法设计与分析(第四版)》P65页,例3.7书本上P67页上第一行b[j] = b[s[j]]行错误,本程序修正了这个错误,在求每段的最大位数时,只需要从头到位扫描一次,时间复杂度为O(n)。

小有成就感^_^5、电路布线问题6、最7、最第四章贪心算法1、哈夫曼编码4、Kruskal算法求最小生成树设有如下无向图,求这个图的最小生成树。

判断两个节点是否连通,用并查集结构来实现。

5、集装箱问题6、活动安排问题第五章回溯法回溯法的基本步骤(1)针对所给问题,定义问题的解空间;(2)确定易于搜索的解空间结构;(3)以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。

回溯法的基本思想在搜索的过程中动态产生问题的解空间。

在任何时刻,算法只保存从根结点到当前扩展结点的路径,这可以节省大量的空间,如果将有的路径全部保存下来,将需要一个巨大的空间。

迭代回溯的算法基本框架(没有理解)void IterativeBacktrack(void){int t = 1;while(t>0){if( f(n,t) <= g(n,t)){for(int i= f(n,t);i<=g(n,t);i++){x[t] = h(i);if(Constraint(t) && Bound(t)){if(Solution(t))Output(x);elset++; // 向纵深方向搜索}}//end for}elset--;}}1、用回溯法求0-1背包问题0-1背包问题的解空间是一棵子集树2、用回溯法求N皇后问题问题描述:在一个N*N棋盘上,放置N个皇后,它们不能在同一行,同一列,以及同一斜线上。

3、用回溯法求旅行售货员问题问题描述:某售货员要到若干城市去推销商品,已知各城市之间的路程(或费用),他要选择一条从驻地出发,经过每个城市一遍,最后回到驻地的路线,使总的路程最短。

4、用回溯法求圆排列问题(1)问题描述给定n个大小不等的圆,将它们排在一个水平面上,求总水平长度最短的圆排列方式。

例如有3个半径分别1,1,2的圆,第一种排列方式为:前面放两个半径为1的小圆,后面跟一个半径为2的大圆,这种排列方式所占的总水平长度为5+2*sqrt(2)。

第二种排列方式为:半径为大圆放中间,两个小圆分别在两侧,这种排列方式所占的总长度为2+4*sqrt(2)。

所以对于同一组圆,不同的排列方式,得到的总水平长度是不一样的。

相关文档
最新文档