数据结构课程设计──N皇后八皇后_第1页
数据结构课程设计──N皇后八皇后_第2页
数据结构课程设计──N皇后八皇后_第3页
数据结构课程设计──N皇后八皇后_第4页
数据结构课程设计──N皇后八皇后_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、上 海 电 机 学 院 课 程 设 计 报 告课设课题: 数 据 结 构 N皇后(八皇后) 学 院: 电 子 信 息 学 院 1专 业: 计 算 机 科 学 与 技 术 1姓 名: 1班 级: 1指导老师: 1报告日期: 年 月 制目 录一、设计目的4二、课程设计基本要求4三、课程设计内容及安排4四、八皇后背景知识5五、八皇后问题的实现65.1、递归方法解八皇后问题6、递归介绍7、使用到的函数和变量8、具体运行结果10、算法流程图11、递归算法代码12、算法分析135.2、回溯法解决八皇后问题13、回溯法介绍13、使用到的函数与变量14、具体运行结果15、算法流程图16、回溯算法代码17、算法

2、分析185.3、堆栈法解八皇后问题18、堆栈法介绍18、使用到的函数与变量19、具体运行过程20、算法流程图21、堆栈法实现的源代码21、算法分析255.4、三种算法的比较255.5、八皇后问题所有输出结果26六、N皇后问题的实现306.1、N皇后问题介绍306.2、使用到的函数与变量306.3、具体的执行316.4、算法流程图316.5、N皇后的源代码326.6、算法分析32七、经验和体会32八、参考文献32九、附录33附录一:递归算法代码34附录二:回溯算法代码34附录三:堆栈法的源代码36附录四:N皇后的源代码39一、设计目的数据结构是一门实践性较强的软件基础课程,为了学好这门课程,必须

3、在掌握理论知识的同时,加强上机实践。本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能。二、课程设计基本要求1、了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3、提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4、训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。5、设计的题目要求达到一定工作量(300行以上代码),并

4、具有一定的深度和难度。6、编写出课程设计说明书,说明书不少于10页(代码不算)。三、课程设计内容1、问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么? 2、逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;3、详细设计:定义相应的存储结构并写出各函数的伪码算法。在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、

5、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;4、程序编码:把详细设计的结果进一步求精为程序设计语言程序。同时加入一些注解和断言,使程序中逻辑概念清楚;5、程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;6、结果分析:程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结

6、果。算法的时间、空间复杂性分析;7、编写课程设计报告;四、八皇后背景知识国际象棋中皇后威力很大,它可以象“车”一样沿直线上下或左右移动;也可以如同“象”那样沿着斜线移动。双方的皇后是不能在同一行或同一列或同一斜线上对持的。那么,在一张空白的国际象棋盘上最多可以放上几个皇后并且不让它们互相攻击呢?这个问题是伟大数学家高斯在十九世纪中期提出来的,并作了部分解答。高斯在棋盘上放下了八个互不攻击的皇后,他还认为可能有76种不同的放法,这就是有名的“八皇后”问题。现在我们已经知道八皇后问题有92个解答。那么你能试着找出几种方法吗?如果你动手试试,就一定会发现开头几颗皇后很容易放置,越到后来就越困难。由于

7、我们的记忆有限,很可能在某个位置放过子后来证明不行取消了,但是以后又重新放上子去试探,这样就会不断地走弯路,花费大量的精力。因此,必须找到一个简易有效、有条不紊的法则才行。让我们先从四皇后谈起。若要在如图1所示的44棋盘中,放置四个互不攻击的皇后,可以如下从上到下逐行地考虑:当然在每行中只能放置一个而且必须放置一个皇后,问题是每行中的皇后应放在第几列?图1 图2如果第一行的皇后放置在第一列,第二行的皇后就不能放置在第一、二列,只能放置在第三列或第四列。如果第二行的皇后放置在第三列,那第三行的皇后就没有安身之处了。那么暂且把第二行的皇后放在第四列,看看情况如何。这时,第三行的皇后可以放在第二列(

8、见图2)。然而,第四行的皇后仍然无家可归!要放置好第四个皇后,必须对前几个皇后的位置予以修正。前面已经说过,第三行以至于第二行的所有位置均已考虑过了,只得考虑让第一行的皇后挪一下。如果把第一行的皇后放在第二列,第二行的皇后放在第四列上,第三行的皇后放在第一列上,第四行的皇后放在第三列上,正好四个皇后互不攻击(见图3a)。如果继续这样逐行逐列地考虑下去,还可以找到四皇后问题地另一个解答(见图3b)。图3对于八皇后问题,也可如此解决:从上到下每行放一个皇后;在每一行中均从左至右逐列试放。能放则放(继续考虑下一行)不能放则换(列数加1)换不成则退(退回前一行,让前一皇后所在列数加1后继续考虑),这就

9、是探索八皇后解答的途径。为了记住在探索过程中每行皇后放置的位置就需要用栈。我们可用数组T来作栈;在T(P)中存放第P行皇后所在的列数。例如在第1行的皇后放在第3列,则可置T(1)=3。对于八皇后问题,如此安排后,数组T只需有八个分量就够了。由于我们在每行中只放一个皇后,故而皇后之间保证不会左右相互攻击了;那么如何检查它们是否在上下或斜线方向相互攻击呢?我们用一个数组C来记录每一列上是否放了皇后,不管在哪一行上的第1列上放了一个皇后,就令C(1)=1,.。若把放在第1列上的皇后取走放到别的位置上去了,那么再令C(1)=0,.。这样,只要查看C(I)是否为零,就可以知道第I列上是否可以放置皇后了!

10、显然,八皇后问题中的数组C也只需八个分量就可以了。在88的国际象棋棋盘上,有15条从左上走向右下的斜线,称为主斜线(如图4中左图);同样有15条从右上走向左下的斜线,称为副斜线。由于每放一个皇后,它所在的两条斜线上就不能再放皇后了。我们可以如同前面所述的那样,再引进两个数组S,M(每个数组有15个分量),分别记录相应的主斜线和副斜线上是否已经放下了皇后。在图4中右图,若在第2行第3列放了一个皇后,则应令S(7)=1,M(4)=1,表示第7条主斜线,第4条副斜线上已有皇后,以后不能再放置了。因为,主对角线数7可由8行数列数8+2-3=7计算得到,副斜线数4可由行数列数12+3-14计算得到。所以

11、一般地说,在第P行,第T(P)列放置皇后以后,应该令:C(T(P)=1;S(8+P-T(P)=1;M(P+T(P)-1)=1。有了以上准备知识,就能为八皇后问题写算法了五、八皇后问题的实现5.1、递归方法解八皇后问题、递归的介绍调用子程序的含义:在过程和函数的学习中,我们知道调用子程序的一般形式是:主程序调用子程序A,子程序A调用子程序B,如图如示,这个过程实际上是:当主程序执行到调用子程序A语句时,系统保存一些必要的现场数据,跳转到子程序A(为了说得简单些,我这里忽略了参数传递这个过程)。当子程序A执行到调用子程序B语句时,系统作法如上,跳转到子程序B。子程序B执行完所有语句后,跳转回子程序

12、A调用子程序B语句的下一条语句(我这又忽略了返回值处理)子程序A执行完后,跳转回主程序调用子程序A语句的下一条语句主程序执行到结束。做个比较:我在吃饭(执行主程序)吃到一半时,某人叫我(执行子程序A),话正说到一半, 又响了起来(执行子程序B),我只要先接完 ,再和某人把话说完,最后把饭吃完认识递归函数我们在高中时都学过数学归纳法,例:求 n! 我们可以把n!这么定义 也就是说要求3!,我们必须先求出2!,要求2!,必须先求1!,要求1!,就必须先求0!,而0!=1,所以1!=0!*1=1,再进而求2!,3!。分别用函数表示,则如图: 我们可以观察到,除计算0!子程序外,其他的子程序基本相似,

13、我们可以设计这么一个子程序: int factorial(int i) int res; res=factorial(I-1)*i; return res; 那么当执行主程序语句s=factorial(3)时,就会执行factorial(3),但在执行factorial(3),又会调用factorial(2),这时大家要注意,factorial(3)和factorial(2)虽然是同一个代码段,但在内存中它的数据区是两份!而执行factorial(2)时又会调用factorial(1),执行factorial(1)时又会调用factorial(0),每调用一次factorial函数,它就会在内

14、存中新增一个数据区,那么这些复制了多份的函数大家可以把它看成是多个不同名的函数来理解;但我们这个函数有点问题,在执行factorial(0)时,它又会调用factorial(1)。造成死循环,也就是说,在factorial函数中,我们要在适当的时候保证不再调用该函数,也就是不执行res=factorial(I-1)*i;这条调用语句。所以函数要改成: int factorial(int i) int res; if (I0) res=factorial(I-1)*i; else res=1;return res; 那么求3!的实际执行过程如图所示: 、使用到的函数和变量在这个算法中共有六个函数

15、,除了Main()主函数,还有IsValid(int n),Output(),Queen(int n),变量icount,Site这些组成程序,红框圈出的是递归函数的应用,既自己调用自己在Queen(int n)中调用queen是典型的递归调用。编译没有错误、具体运行结果运行结果表示出有92种可能性、算法流程图递归的图解演示、程序代码见附录一、算法分析递归是一种很古老的算法,其应用的也十分的广泛,在和多复杂的程序中也是经常性的使用,虽然其的程序编写相对的简单,但其确消耗很多的资源,在没有好的算法的前提下,这是相对能够运行的算法,当然这也是在编程着能够拥有一定的编写能力的基础上的。递归的优点是:

16、编写简单,缺点是:消耗资源大。八皇后问题是一个经典的数据结构问题用递归是最为常见的方法,由于递归是自己套自己,把八皇后问题的调用函数在代码界面上融合到了一个函数中。该算法中所有语句的频度之和(即算法的时间耗费)为: T(n)=2n3+3n2+2n+1当n趋向于无穷时,其时间复杂度为O(n3)。5.2、回溯法解决八皇后问题、回溯法介绍在计算机奥赛中,有时会遇到这样一类题目,它的问题可以分解,但是又不能得出明确的动态规划或是递归解法,此时可以考虑用回溯法解决此类问题。回溯法的优点在于其程序结构明确,可读性强,易于理解,而且通过对问题的分析可以大大提高运行效率。但是,对于可以得出明显的递推公式迭代求

17、解的问题,还是不要用回溯法,因为它花费的时间比较长。回溯法的基本思想对于用回溯法求解的问题,首先要将问题进行适当的转化,得出状态空间树。这棵树的每条完整路径都代表了一种解的可能。通过深度优先搜索这棵树,枚举每种可能的解的情况;从而得出结果。但是,回溯法中通过构造约束函数,可以大大提升程序效率,因为在深度优先搜索的过程中,不断的将每个解(并不一定是完整的,事实上这也就是构造约束函数的意义所在)与约束函数进行对照从而删除一些不可能的解,这样就不必继续把解的剩余部分列出从而节省部分时间。回溯法中,首先需要明确下面三个概念:(一)约束函数:约束函数是根据题意定出的。通过描述合法解的一般特征用于去除不合

18、法的解,从而避免继续搜索出这个不合法解的剩余部分。因此,约束函数是对于任何状态空间树上的节点都有效、等价的。(二)状态空间树:刚刚已经提到,状态空间树是一个对所有解的图形描述。树上的每个子节点的解都只有一个部分与父节点不同。(三)扩展节点、活结点、死结点:所谓扩展节点,就是当前正在求出它的子节点的节点,在DFS中,只允许有一个扩展节点。活结点就是通过与约束函数的对照,节点本身和其父节点均满足约束函数要求的节点;死结点反之。由此很容易知道死结点是不必求出其子节点的(没有意义)。深度优先搜索(DFS)和广度优先搜索(FIFO)在分支界限法中,一般用的是FIFO或最小耗费搜索;其思想是一次性将一个节

19、点的所有子节点求出并将其放入一个待求子节点的队列。通过遍历这个队列(队列在遍历过程中不断增长)完成搜索。而DFS的作法则是将每一条合法路径求出后再转而向上求第二条合法路径。而在回溯法中,一般都用DFS。为什么呢?这是因为可以通过约束函数杀死一些节点从而节省时间,由于DFS是将路径逐一求出的,通过在求路径的过程中杀死节点即可省去求所有子节点所花费的时间。FIFO理论上也是可以做到这样的,但是通过对比不难发现,DFS在以这种方法解决问题时思路要清晰非常多。因此,回溯法可以被认为是一个有过剪枝的DFS过程。利用回溯法解题的具体步骤首先,要通过读题完成下面三个步骤:(1) 描述解的形式,定义一个解空间

20、,它包含问题的所有解。(2) 构造状态空间树。(3) 构造约束函数(用于杀死节点)。然后就要通过DFS思想完成回溯,完整过程如下:(1) 设置初始化的方案(给变量赋初值,读入已知数据等)。(2) 变换方式去试探,若全部试完则转(7)。(3) 判断此法是否成功(通过约束函数),不成功则转(2)。(4) 试探成功则前进一步再试探。(5) 正确方案还未找到则转(2)。(6) 已找到一种方案则记录并打印。(7) 退回一步(回溯),若未退到头则转(2)。(8) 已退到头则结束或打印无解。回溯法的数据结构回溯法的状态空间树,在计算机上的数据结构有两种表示方法。当用k表示树的节点层数,n表示节点总数,m表示

21、解的总数时:(一) 用m个k元组表示m种不同的解。其中,每组中的元素是1,n中的一个元素。在Pascal中,可以这样定义变量: var a:array1.k,1.mof integer;(integer可以依n的范围决定)(二) m个n元组表示m种不同的解。因为所有的节点都包含在每个解的表示中,每组中的元素只有两种情况,被选用和不被选用。在Pascal中,可以这样定义变量:var a:array1.n,1.mof boolean;这两种数据结构的解空间最多都含有2n个不同的元组、使用到的函数与变量回溯发是很好的算法,在所有算发中空间复杂度是最小的,其只有一个主函数main(),和一个变量tot

22、al,就可以成功的解决八皇后问题,我本人对于这种算法非常的推崇,也觉的是所有解决了八皇后问题中最好的。编译没有错误、具体运行结果运行结果如图、算法流程图回溯算法的图解、程序代码见附录二、算法分析回溯是一个很好的算法,其应用的也十分的广泛,在和多复杂的程序中也是经常性的使用,虽然其的程序编写相对的简单,但其确消耗很多的资源,在没有好的算法的前提下,这是相对能够运行的算法,当然这也是在编程着能够拥有一定的编写能力的基础上的。回溯的优点是:编写复杂,缺点是:消耗资源小。八皇后问题是一个经典的数据结构问题用回溯是最为常见的方法,由于回溯是自己套自己,把八皇后问题的调用函数在代码界面上融合到了一个函数中

23、。该算法中所有语句的频度之和(即算法的时间耗费)为: T(n)=2n2+1分析:当n趋向于无穷时,其时间复杂度为O(n2+1 +2)。5.3、堆栈法解八皇后问题、堆栈法介绍堆栈的概念堆栈(Stack)是一种比较重要的线性数据结构,如果对数据结构知识不是很了解的话,我们可以把它简单的看作一维数组。但是对一维数组进行元素的插入、删除操作时,可以在任何位置进行,而对于栈来说,插入、删除操作是固定在一端进行的,这一端称为栈顶(top),另一端称为栈底(bottom),向栈中插入数据的操作称为压入(Push),从栈中删除数据称为弹出(Pop)。二 堆栈的存储方式对栈中元素的操作是按后进先出(Last I

24、n First Out,简称LIFO)的原则进行的,即最后压入的元素最先弹出。在栈的操作过程中,有一个永远指向栈顶的栈顶指针,在压入和弹出数据时,栈顶指针向上或向下移动。当栈顶指针为零时(即指向栈底的后面),栈为空栈。如果压入的数据过多超出了栈的最大空间,则发生栈上溢。在程序设计中,我们可以使用一维数组实现对栈的操作。假设用一维数组s1.arrmax表示栈,则对于非空栈,s1为最早压入栈的元素,同时设栈顶指针top,则stop为最后压入栈的元素。当top=arrmax时栈满,若此时有数据入栈将产生“数组越界”的错误,极为栈上溢,反之当top=0,意为栈空。、使用到的函数与变量组成的程序的函数有

25、:DeSetQueen(int row,int col),DisplayAndSet(),main(),NoConflict(int row,int col),Pop(),Push(int row,int col),Queen(),SetQueen(int row,int col),变量有:ArrayQueen,OutQueen,Top 。没有编译错误、具体运行过程八皇后问题的源代码、算法流程图、程序代码见附录三、算法分析堆栈是一个很好的算法,其应用的也十分的广泛,在和多复杂的程序中也是经常性的使用,虽然其的程序编写相对的简单,但其确消耗很多的资源,在没有好的算法的前提下,这是相对能够运行的算

26、法,当然这也是在编程着能够拥有一定的编写能力的基础上的。堆栈的优点是:算法比较的平均,运行十分的复杂。八皇后问题是一个经典的数据结构问题用递归是最为常见的方法,由于递归是自己套自己,把八皇后问题的调用函数在代码界面上融合到了一个函数中。该算法中所有语句的频度之和(即算法的时间耗费)为: T(n)=2nn+1分析:当n趋向于无穷时,其时间复杂度为O(n2 +1)。5.4、三种算法的比较递归简单,但消耗资源。回溯比较的复杂,但消耗资源少。堆栈比较的平均5.5、八皇后问题所有输出结果为(88棋盘):第1种情况: 第2种情况: 第3种情况:Q * * * * * * * Q * * * * * * *

27、 Q * * * * * * * * * * * * Q * * * * * * * Q * * * * * * Q * * * * * Q * * * * * * Q * * * * * * * * * * * Q* * * * * * * Q * * * * * Q * * * * Q * * * * * Q * * * * * * * * * * * * * Q * * * * * * Q * * * Q * * * * Q * * * * * * * * * * Q * * * * * * * * Q * * * * * * Q * * * * Q * * * * * * * Q *

28、* * * * * * Q * * * * * * * * * Q * * * 第4种情况: 第5种情况: 第6种情况:Q * * * * * * * * * * * * Q * * * * * Q * * * * * * * Q * * * Q * * * * * * * Q * * * * * * * * * * * * * Q * * * * Q * * * * * * * Q * * * * * * * Q * * * Q * * * * * * * * * * * * * Q* * Q * * * * * * * * * * * * Q * Q * * * * * * * * * *

29、 * Q * * * Q * * * * * * * * * * * Q * * Q * * * * * * * * * * * * Q * * * Q * * * * * * * * Q * * * * * * * Q * * * * * * * * * Q * *第7种情况: 第8种情况: 第9种情况:* * * * Q * * * * * Q * * * * * * * * * Q * * *Q * * * * * * * Q * * * * * * * Q * * * * * * * * * * * * * Q * * * * * * Q * * * * Q * * * * * * Q

30、 * * * * * * * * Q * * * * * * * * Q * * Q * * * * * * * * * * * * * Q * * * * * * * Q* * * * * * Q * * Q * * * * * * * Q * * * * * * * Q * * * * * * * * Q * * * * * * * * * * Q * * * * * Q * * * * * * * Q * * * * Q * * * * * 第10种情况: 第11种情况: 第12种情况:* * * * * * Q * * * * * Q * * * * * * Q * * * *Q *

31、* * * * * * Q * * * * * * * Q * * * * * * * * Q * * * * * * * * * * * * Q * * * * Q * * * * * * * * * Q * * * * * Q * * * * * * * * * Q* * * * * Q * * * * Q * * * * * * * * * * Q * * * * Q * * * * * * * * * * Q * * * Q * * * * * Q * * * * * * * Q * * * * * * * * * * * * Q * * * * Q * * * * * * Q * *

32、 * * * Q * * * * * *第13种情况: 第14种情况: 第15种情况:* Q * * * * * * * * * * Q * * * * * * * * * * Q* * * * * Q * * * * Q * * * * * * * Q * * * * *Q * * * * * * * Q * * * * * * * Q * * * * * * * * * * * * Q * * * * * * * Q * * * * * * Q * * * * Q * * * * * Q * * * * * * * Q * * * * * * * * * * * * Q * * * * *

33、 * * Q * * * * Q * * * * Q * * * * * * * * * * Q * * * * * * * * Q * * * * Q * * * * * * Q * * * * * * * Q * * * *第16种情况: 第17种情况: 第18种情况:* * * Q * * * * * * * * Q * * * * * * * * Q * * * * * * Q * * * * * * * * Q * * * Q * * * * *Q * * * * * * * Q * * * * * * * Q * * * * * * * * * * Q * * * * * * Q

34、* * * * * * * * * * * Q* Q * * * * * * * Q * * * * * * * * * Q * * * * * * * * * * Q * * * * * * * Q * Q * * * * * * * Q * * * * * * * * * * Q * * * * * * * * Q * * * * * * Q * * * Q * * * * * * * * * Q * * *第19种情况: 第20种情况: 第21种情况:* * * * Q * * * * * * * * Q * * * * * Q * * * * * Q * * * * * * * Q *

35、 * * * * * * * * * * * QQ * * * * * * * Q * * * * * * * Q * * * * * * * * * * * Q * * * * * * * * * Q * * Q * * * * * * * * * * * Q * * * * Q * * * * * * * * Q * * Q * * * * * * * Q * * * * * * * Q * * * * * * * * Q * * * * * * * Q * * * * * * * * * * Q * * * * * * Q * * * * * * * Q * * * * * Q * *

36、*第22种情况: 第23种情况: 第24种情况:* * * * * * * Q * * * Q * * * * * * * Q * * * * * * Q * * * * * * * * * * * Q * * * * * * Q *Q * * * * * * * Q * * * * * * * Q * * * * * * * * Q * * * * * * * * * Q * * * * * * * * * * Q* * * * * Q * * * * * * * * Q * * * * * Q * * * Q * * * * * * * Q * * * * * * * Q * * * *

37、* * * * * * * Q * * * * * * Q * * * * * * * Q * * * * * Q * * * * * Q * * * * * * * Q * * * * *第25种情况: 第26种情况: 第27种情况:* * * * * Q * * * * * * * Q * * * * * * * * Q * * * Q * * * * * * Q * * * * * * * Q * * * * *Q * * * * * * * Q * * * * * * * Q * * * * * * * * * * Q * * * * * * * * * Q * * * * * * Q

38、 * * * * * * * * Q * * * * Q * * * * * * * * * * Q* Q * * * * * * * * * * * * * Q * * * * Q * * * * * * * * Q * * Q * * * * * * * Q * * * * * * * Q * * * * * * * * Q * * * * * * * Q * * * *第28种情况: 第29种情况: 第30种情况:* * * * Q * * * * Q * * * * * * * Q * * * * * * * * * * * * Q * * * * * Q * * * * * * *

39、* * * QQ * * * * * * * * * * * * * Q * * * * * * Q * * * Q * * * * * Q * * * * * * * Q * * * * * * * * * * * * * Q * * Q * * * * * * * Q * * * * * * * * * Q * * * * * * * * * Q * * * * Q * * * * * Q * * * * * * * * * Q * * * * * * * * Q * Q * * * * * * * * * Q * * * * * * * Q * * * *第31种情况: 第32种情况:

40、第33种情况:* * * * * Q * * * * * * * * Q * * * * * * * * Q* Q * * * * * * * Q * * * * * * * Q * * * * * * * * * * * Q * * * * Q * * * * * * * Q * * * *Q * * * * * * * Q * * * * * * * Q * * * * * * * * Q * * * * * * * * * * * * Q * * * * * * Q * * * * Q * * * * * * * Q * * * * * * * Q * * * * * * * * * Q

41、 * * Q * * * * * * * Q * * * * * * * Q * * * * * * * * * Q * * * * * * * Q * *第34种情况: 第35种情况: 第36种情况:* * * * Q * * * * * * * * Q * * * * * * Q * * * Q * * * * * * * Q * * * * * * * Q * * * * * * * * * * * * Q * * * * * * Q * * * * * * Q * *Q * * * * * * * Q * * * * * * * Q * * * * * * * * * Q * * *

42、* * * * Q * * * * * * * * * * Q * * * * * * Q * * * * * * * * Q * * * Q * * * * * Q * * * * * * * * * Q * * * * * * * * * * Q* * * * * Q * * * * Q * * * * * * * Q * * * * *第37种情况: 第38种情况: 第39种情况:* * Q * * * * * * * * * * Q * * * * * * Q * * * * * * Q * * * * * * Q * * * * * * * * * * * Q* * * * * *

43、Q * * * * * * * Q * * * * Q * * * *Q * * * * * * * Q * * * * * * * Q * * * * * * * * * Q * * * * * * * * * * * Q * * * * * * Q * Q * * * * * * * Q * * * * * * * Q * * * * * * * * * * * * Q * * * * Q * * * * * * * * Q * * * * * * Q * * * * Q * * * * * * * Q * * * * *第40种情况: 第41种情况: 第42种情况:* * Q * * * * * * * * * * * Q * * * * * * Q * * * * * * Q * * * * * * Q * * * * * * Q * * * * * * * * * * Q * * Q * * * * * * * * * * * Q *Q * * * * * * * Q * * * * * * * Q * * * * * * * * * * Q * * * * * * * * Q *

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论