版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE80PAGE268状态空间表示法例:设N个传教士带领N个野人划船渡河,且为安全起见,渡河需遵循两个约束:(1)船上的人数不得超过载重限量,设为K个人;(2)为预防野人攻击,任何时刻(包括两岸、船上)野人数目不得超过传教士数目。应如何规划渡河方案?为便于理解状态空间表示法,可简化该问题到一个特例:N=3,K=2。解:首先选取描述问题状态的方法。在这个问题中,需要考虑两岸的修道士人数和野人数,还需要考虑船在左岸还是在右岸。从而可用一个三元组来表示状态S=(m,c,b)其中,m表示左岸的修道士人数,c表示左岸的野人数,b表示左岸的船数。右岸的状态可由下式确定:右岸修道士数m'=3-m右岸野人数c'=3-c右岸船数b'=1-b在这种表示方式下,m和c都可取0、1、2、3中之一,b可取0和1中之一。因此,共有4×4×2=32种状态。这32种状态并非全有意义,除去不合法状态和修道士被野人吃掉的状态,有意义的状态只有16种:S0=(3,3,1)S1=(3,2,1)S2=(3,1,1)S3=(2,2,1)S4=(1,1,1)S5=(0,3,1)S6=(0,2,1)S7=(0,1,1)S8=(3,2,0)S9=(3,1,0)S10=(3,0,0)S11=(2,2,0)S12=(1,1,0)S13=(0,2,0)S14=(0,1,0)S15=(0,0,0)有了这些状态,还需要考虑可进行的操作。操作是指用船把修道士或野人从河的左岸运到右岸,或从河的右岸运到左岸。每个操作都应当满足如下条件:一是船至少有一个人(m或c)操作,离开岸边的m和c的减少数目应该等于到达岸边的m和c的增加数目;二是每次操作船上人数不得超过2个;三是操作应保证不产生非法状态。因此,操作应由条件部分和动作部分:条件:只有当其条件具备时才能使用动作:刻划了应用此操作所产生的结果。操作的表示:用符号Pij表示从左岸到右岸的运人操作用符号Qij表示从右岸到左岸的操作其中:i表示船上的修道士人数j表示船上的野人数操作集本问题有10种操作可供选择:F={P01,P10,P11,P02,P20,Q01,Q10,Q11,Q02,Q20}下面以P01和Q01为例来说明这些操作的条件和动作。操作符号条件动作P01b=1,m=0或3,c≥1b=0,c=c-1Q01b=0,m=0或3,c≤2b=1,c=c+1于是,从初始状态出发,可画出该问题的状态空间有向图,见图1.1。二阶梵塔问题设用Sk=(Sk0,Sk1)表示问题的状态,Sk0表示金片A所在钢针号,Sk1表示金片B所在钢针号,全部可能的状态有九种:S0=(1,1),S1=(1,2),S2=(1,3)S3=(2,1),S4=(2,2),S5=(2,3)S6=(3,1),S7=(3,2),S8=(3,3)问题的初始状态集合为S={S0}目标状态集合为G={S4,S8}初始状态S0和目标状态S4、S8如图所示操作分别用A(i,j)和B(i,j)表示A(i,j)表示把金片A从第i号钢针移到j号钢针上;B(i,j)表示把金片B从第i号钢针一到第j号钢针上。共有12种操作,它们分别是:A(1,2)A(1,3)A(2,1)A(2,3)A(3,1)A(3,2)B(1,2)B(1,3)B(2,1)B(2,3)B(3,1)B(3,2)根据上述9种可能的状态和12种操作,可构成二阶梵塔问题的状态空间图,如下图所示。·s指示初始状态节点;G指示搜索图;·OPEN用于存放待扩展节点的表;·CLOSE用于存放已扩展节点的表;·FIRST(OPEN)指示取OPEN表首的节点作为当前要被扩展的节点n;·REMOVE(n,OPEN)将节点n从OPEN表中删去;·ADD(n,CLOSE)把节点n加入到CLOSE表中;·EXPAND(n)扩展节点n。深度优先宽度优先在3×3的方格棋盘上,分别放置了表有数字1、2、3、4、5、6、7、8的八张牌,初始状态S0,目标状态Sg,如下图所示。可以使用的操作有空格左移,空格上移,空格右移,空格下移即只允许把位于空格左、上、右、下方的牌移入空格。要求应用宽度优先和深度优先搜索策略寻找从初始状态到目标状态的解路径。
评价函数的格式:f(n)=g(n)+h(n)f(n):评价函数h(n):启发函数·g*(n):从初始结点s到结点n的最短路径的耗散值;·h*(n):从结点n到目标结点g的最短路径的耗散值;·f*(n)=g*(n)+h*(n):从初始结点s经过结点n到目标结点g的最短路径的耗散值;·g(n)、h(n)、f(n)分别是g*(n)、h*(n)、f*(n)的估计值。在A算法中,如果满足条件:h(n)≤h*(n)则A算法称为A*算法。解树的耗散值可按如下规则计算:(1)若n为终止节点,则其代价h(n)=0;(2)若n为或节点,且子节点为n1,n2,…,nk,则n的代价为:其中,c(n,ni)是节点n到其子节点ni的边代价。(3)若n为与节点,且子节点为n1,n2,…,nk,则n的代价可用和代价法或最大代价法。若用和代价法,则其计算公式为:若用最大代价法,则其计算公式为:(4)若n是端节点,但又不是终止节点,则n不可扩展,其代价定义为h(n)=∝。(5)根节点的代价即为解树的代价。知识表示方法部分参考答案2.8设有如下语句,请用相应的谓词公式分别把他们表示出来:s(1)有的人喜欢梅花,有的人喜欢菊花,有的人既喜欢梅花又喜欢菊花。解:定义谓词dP(x):x是人L(x,y):x喜欢y其中,y的个体域是{梅花,菊花}。将知识用谓词表示为:(x)(P(x)→L(x,梅花)∨L(x,菊花)∨L(x,梅花)∧L(x,菊花))(2)有人每天下午都去打篮球。解:定义谓词P(x):x是人B(x):x打篮球A(y):y是下午将知识用谓词表示为:a(x)(y)(A(y)→B(x)∧P(x))(3)新型计算机速度又快,存储容量又大。解:定义谓词NC(x):x是新型计算机F(x):x速度快B(x):x容量大将知识用谓词表示为:(x)(NC(x)→F(x)∧B(x))(4)不是每个计算机系的学生都喜欢在计算机上编程序。解:定义谓词S(x):x是计算机系学生L(x,pragramming):x喜欢编程序U(x,computer):x使用计算机将知识用谓词表示为:¬(x)(S(x)→L(x,pragramming)∧U(x,computer))(5)凡是喜欢编程序的人都喜欢计算机。解:定义谓词P(x):x是人L(x,y):x喜欢y将知识用谓词表示为:(x)(P(x)∧L(x,pragramming)→L(x,computer))2.11用谓词表示法求解修道士和野人问题。在河的北岸有三个修道士、三个野人和一条船,修道士们想用这条船将所有的人都运过河去,但要受到以下条件限制:(1)修道士和野人都会划船,但船一次只能装运两个人。(2)在任何岸边,野人数不能超过修道士,否则修道士会被野人吃掉。假定野人愿意服从任何一种过河安排,请规划出一种确保修道士安全的过河方案。要求写出所用谓词的定义、功能及变量的个体域。解:(1)定义谓词先定义修道士和野人人数关系的谓词:G(x,y,S):在状态S下x大于yGE(x,y,S):在状态S下x大于或等于y其中,x,y分别代表修道士人数和野人数,他们的个体域均为{0,1,2,3}。再定义船所在岸的谓词和修道士不在该岸上的谓词:Boat(z,S):状态S下船在z岸EZ(x,S):状态S下x等于0,即修道士不在该岸上其中,z的个体域是{L,R},L表示左岸,R表示右岸。再定义安全性谓词:Safety(z,x,y,S)≡(G(x,0,S)∧GE(x,y,S))∨(EZ(x,S))其中,z,x,y的含义同上。该谓词的含义是:状态S下,在z岸,保证修道士安全,当且仅当修道士不在该岸上,或者修道士在该岸上,但人数超过野人数。该谓词同时也描述了相应的状态。再定义描述过河方案的谓词:L-R(x,x1,y,y1,S):x1个修道士和y1个野人渡船从河的左岸到河的右岸条件:Safety(L,x-x1,y-y1,S’)∧Safety(R,3-x+x1,3-y+y1,S’)∧Boat(L,S)动作:Safety(L,x-x1,y-y1,S’)∧Safety(R,3-x+x1,3-y+y1,S’)∧Boat(R,S’)R-L(x,x1,y,y1,S):x2个修道士和y2个野人渡船从河的左岸到河的右岸条件:Safety(R,3-x-x2,3-y-y2,S’)∧Safety(L,x+x2,y+y2,S’)∧Boat(R,S)动作:Safety(R,3-x-x2,3-y-y2,S’)∧Safety(L,x+x2,y+y2,S’)∧Boat(L,S’)(2)过河方案Safety(L,3,3,S0)∧Safety(R,0,0,S0)∧Boat(L,S0)L-R(3,1,3,1,S0)L-R(3,0,3,2,S0)Safety(L,2,2,S1)∧Safety(R,1,1,S1)∧Boat(R,S1)Safety(L,3,1,S1’)∧Safety(R,0,2,S1’)∧Boat(R,S1’)R-L(2,1,2,0,S1)R-L(3,0,1,1,S1’)Safety(L,3,2,S2)∧Safety(R,0,1,S2)∧Boat(L,S2)L-R(3,0,2,2,S2)Safety(L,3,0,S3)∧Safety(R,0,3,S3)∧Boat(R,S3)R-L(3,0,0,1,S3)Safety(L,3,1,S4)∧Safety(R,0,2,S1)∧Boat(L,S4)L-R(3,2,1,0,S4)Safety(L,1,1,S5)∧Safety(R,2,2,S5)∧Boat(R,S5)R-L(1,1,1,1,S5)Safety(L,2,2,S6)∧Safety(R,1,1,S6)∧Boat(L,S6)L-R(2,2,2,0,S6)Safety(L,0,2,S7)∧Safety(R,3,1,S7)∧Boat(R,S7)R-L(0,0,2,1,S7)Safety(L,0,3,S8)∧Safety(R,3,0,S8)∧Boat(L,S8)L-R(0,0,3,2,S8)Safety(L,0,1,S9)∧Safety(R,3,2,S9)∧Boat(R,S9)R-L(0,1,1,0,S9)Safety(L,1,1,S10)∧Safety(R,2,2,S10)∧Boat(L,S10)L-R(1,1,1,1,S10)Safety(L,0,0,S11)∧Safety(R,3,3,S11)∧Boat(R,S11)2.18请对下列命题分别写出它们的语义网络:(1)每个学生都有一台计算机。gGSgGSGS解:gGSgGSGS占有权计算机学生占有权计算机学生AKOISAISAFAKOISAISAFOwnsOwnerOwnsOwnercosgcosg(2)高老师从3月到7月给计算机系学生讲《计算机网络》课。解:7月8月7月8月StartEndStartEnd老师ISAObjectSubject高老师计算机系学生讲课事件老师ISAObjectSubject高老师计算机系学生讲课事件ActionCaurseActionCaurse计算机网络讲课计算机网络讲课(3)学习班的学员有男、有女、有研究生、有本科生。解:参例2.14(4)创新公司在科海大街56号,刘洋是该公司的经理,他32岁、硕士学位。解:参例2.10(5)红队与蓝队进行足球比赛,最后以3:2的比分结束。解:比赛比赛AKOAKOParticipants1Outcome3:22Participants1Outcome3:22足球赛红队红队Participants2Participants2蓝队蓝队2.19请把下列命题用一个语义网络表示出来:(1)树和草都是植物;植物解:植物AKOAKOAKOAKO草树草树(2)树和草都有叶和根;根叶解:根叶HaveHaveHaveHave植物植物是一种是一种是一种是一种草树草树(3)水草是草,且生长在水中;解:LiveAKOAKO水草LiveAKOAKO水草水中植物草水中植物草(4)果树是树,且会结果;解:CanAKOAKO果树CanAKOAKO果树结果植物树结果植物树(5)梨树是果树中的一种,它会结梨。解:CanAKOAKO梨树CanAKOAKO梨树树果树结梨树果树结梨2.25假设有以下一段天气预报:“北京地区今天白天晴,偏北风3级,最高气温12º,最低气温-2º,降水概率15%。”请用框架表示这一知识。解:Frame<天气预报>地域:北京时段:今天白天天气:晴风向:偏北风力:3级气温:最高:12度最低:-2度降水概率:15%2.26按“师生框架”、“教师框架”、“学生框架”的形式写出一个框架系统的描述。解:师生框架Frame<Teachers-Students>Name:Unit(Last-name,First-name)Sex:Area(male,female)Default:maleAge:Unit(Years)Telephone:HomeUnit(Number)MobileUnit(Number)教师框架Frame<Teachers>AKO<Teachers-Students>Major:Unit(Major-Name)Lectures:Unit(Course-Name)Field:Unit(Field-Name)Project:Area(National,Provincial,Other)Default:ProvincialPaper:Area(SCI,EI,Core,General)Default:Core学生框架Frame<Students>AKO<Teachers-Students>Major:Unit(Major-Name)Classes:Unit(Classes-Name)Degree:Area(doctor,mastor,bachelor)Default:bachelor搜索策略部分参考答案4.5有一农夫带一条狼,一只羊和一框青菜与从河的左岸乘船倒右岸,但受到下列条件的限制:(1)船太小,农夫每次只能带一样东西过河;如果没有农夫看管,则狼要吃羊,羊要吃菜。请设计一个过河方案,使得农夫、浪、羊都能不受损失的过河,画出相应的状态空间图。题示:(1)用四元组(农夫,狼,羊,菜)表示状态,其中每个元素都为0或1,用0表示在左岸,用1表示在右岸。(2)把每次过河的一种安排作为一种操作,每次过河都必须有农夫,因为只有他可以划船。解:第一步,定义问题的描述形式用四元组S=(f,w,s,v)表示问题状态,其中,f,w,s和v分别表示农夫,狼,羊和青菜是否在左岸,它们都可以取1或0,取1表示在左岸,取0表示在右岸。第二步,用所定义的问题状态表示方式,把所有可能的问题状态表示出来,包括问题的初始状态和目标状态。由于状态变量有4个,每个状态变量都有2种取值,因此有以下16种可能的状态:S0=(1,1,1,1),S1=(1,1,1,0),S2=(1,1,0,1),S3=(1,1,0,0)S4=(1,0,1,1),S5=(1,0,1,0),S6=(1,0,0,1),S7=(1,0,0,0)S8=(0,1,1,1),S9=(0,1,1,0),S10=(0,1,0,1),S11=(0,1,0,0)S12=(0,0,1,1),S13=(0,0,1,0),S14=(0,0,0,1),S15=(0,0,0,0)其中,状态S3,S6,S7,S8,S9,S12是不合法状态,S0和S15分别是初始状态和目标状态。第三步,定义操作,即用于状态变换的算符组F由于每次过河船上都必须有农夫,且除农夫外船上只能载狼,羊和菜中的一种,故算符定义如下:L(i)表示农夫从左岸将第i样东西送到右岸(i=1表示狼,i=2表示羊,i=3表示菜,i=0表示船上除农夫外不载任何东西)。由于农夫必须在船上,故对农夫的表示省略。R(i)表示农夫从右岸将第i样东西带到左岸(i=1表示狼,i=2表示羊,i=3表示菜,i=0表示船上除农夫外不载任何东西)。同样,对农夫的表示省略。这样,所定义的算符组F可以有以下8种算符:L(0),L(1),L(2),L(3)R(0),R(1),R(2),R(3)第四步,根据上述定义的状态和操作进行求解。该问题求解过程的状态空间图如下:(1,1,l,1)(1,1,l,1)L(2)L(2)(0,1,0,1)(0,1,0,1)R(0)R(0)(1,1,0,1)(1,1,0,1)L(3)L(1)L(3)L(1)(0,1,0,0)(0,0,0,1)(0,1,0,0)(0,0,0,1)R(2)R(2)R(2)R(2)(1,1,1,0)(1,0,1,1)(1,1,1,0)(1,0,1,1)L(2)L(2)L(3)L(3)(0,0,1,0)(0,0,1,0)R(0)R(0)(1,0,1,0)(1,0,1,0)L(2)L(2)(0,0,0,0)(0,0,0,0)4.7圆盘问题。设有大小不等的三个圆盘A、B、C套在一根轴上,每个盘上都标有数字1、2、3、4,并且每个圆盘都可以独立的绕轴做逆时针转动,每次转动90°,其初始状态S0和目标状态Sg如图4-31所示,请用广度优先搜索和深度优先搜索,求出从S0到Sg的路径。CC12222222CC12222222BAAB42BAAB42234131231331412341312313314144444343初始状态S0目标状态Sg图431圆盘问题解:设用qA,qB和qC分别表示把A盘,B盘和C盘绕轴逆时针转动90º,这些操作(算符)的排列顺序是qA,qB,qC。应用广度优先搜索,可得到如下搜索树。在该搜索树中,重复出现的状态不再划出,节点旁边的标识Si,i=0,1,2,…,为按节点被扩展的顺序给出的该节点的状态标识。由该图可以看出,从初始状态S0到目标状态Sg的路径是S0→2→5→13(Sg)323221113334444233132314122344323141212434233114242413ABCqAqBqC331311224244qA322441311324qBqC413412332334123331313124422412344123412313324112244qC334213112244qA314241231234qB132314242413qC4.7题的广度优先搜索树S0S1S2S4S5S6S7S8S9S10S11S12即SgS3其深度优先搜索略。4.8图4-32是5个城市的交通图,城市之间的连线旁边的数字是城市之间路程的费用。要求从A城出发,经过其它各城市一次且仅一次,最后回到A城,请找出一条最优线路。A10B289C1163128D9E432交通费用图解:这个问题又称为旅行商问题(travellingsalesmanproblem,TSP)或货郎担问题,是一个较有普遍性的实际应用问题。根据数学理论,对n个城市的旅行商问题,其封闭路径的排列总数为:(n!)/n=(n-1)!其计算量相当大。例如,当n=20时,要穷举其所有路径,即使用一个每秒一亿次的计算机来算也需要350年的时间。因此,对这类问题只能用搜索的方法来解决。下图是对图4-32按最小代价搜索所得到的搜索树,树中的节点为城市名称,节点边上的数字为该节点的代价g。其计算公式为g(ni+1)=g(ni)+c(ni,ni+1)其中,c(ni,ni+1)为节点ni到ni+1节点的边代价。0A0A119210119210102119BDCE102119BDCE9869312838612898693128386128201917CDB181221ECB10105EDB16E2218DC201917CDB181221ECB10105EDB16E2218DC331288933128892312386886896912612988323123868868969126129883C32B222925DC2020EBB16D191622DE31E25CC32B222925DC2020EBB16D191622DE31E25C9838E12912BD272426CB2720C1417BE2524DC2621DE9838E12912BD272426CB2720C1417BE2524DC2621DE68126666812666E3133E9328D31B926B26E831B28DD273E3133E9328D31B926B26E831B28DD27323E35ED27D32C34B30282023E35ED27D32C34B302820E28CBE28CB21021030A30A30A30A图4.32的最小代价搜索树图4.32的最小代价搜索树可以看出,其最短路经是A-C-D-E-B-A或A-B-E-D-C-A其实,它们是同一条路经。4.11设有如下结构的移动将牌游戏:BBWWE其中,B表示黑色将牌,W表是白色将牌,E表示空格。游戏的规定走法是:(1)任意一个将牌可移入相邻的空格,规定其代价为1;(2)任何一个将牌可相隔1个其它的将牌跳入空格,其代价为跳过将牌的数目加1。游戏要达到的目标什是把所有W都移到B的左边。对这个问题,请定义一个启发函数h(n),并给出用这个启发函数产生的搜索树。你能否判别这个启发函数是否满足下解要求?再求出的搜索树中,对所有节点是否满足单调限制?解:设h(x)=每个W左边的B的个数,f(x)=d(x)+3*h(x),其搜索树如下:f(x)=0+12=12f(x)=0+12=12BBWWEf(x)=1+12=13f(x)=1+12=13BBEWWf(x)=1+12=13f(x)=1+12=13BBWEWf(x)=2+12=14f(x)=2+12=14f(x)=2+9=11f(x)=2+9=11BBEWWBEWBWf(x)=3+9=12f(x)=3+9=12EBWBWf(x)=4+6=10f(x)=4+6=10WBEBWf(x)=5+3=8f(x)=5+3=8WBWBEf(x)=6+3=9f(x)=6+3=9WBWEBf(x)=7+0=7f(x)=7+0=7WBWEB4.14设有如图4-34的与/或/树,请分别按和代价法及最大代价法求解树的代价。AABCDt2t3t4t1图4.34习题4.14的与/或树56217223E解:若按和代价法,则该解树的代价为:h(A)=2+3+2+5+2+1+6=21若按最大代价法,则该解树的代价为:h(A)=max{h(B)+5,h(C)+6}=max{(h(E)+2)+5,h(C)+6}=max{(max(2,3)+2)+5,max(2,1)+6}=max((5+5,2+6)=104.15设有如图4-35所示的博弈树,其中最下面的数字是假设的估值,请对该博弈树作如下工作:(1)计算各节点的倒推值;利用α-β剪枝技术剪去不必要的分枝。图4.35习题4.15的博弈树图4.35习题4.15的博弈树305-336-2354-3068-3369S0ABCDEFGHIJKLNM解:各节点的倒推值和剪枝情况如下图所示:习题4.15的倒推值和剪枝情况习题4.15的倒推值和剪枝情况305-336-2354-3068-336≤0≥0≤0≤-39≤3≥3≤4≥4≤4≥4≤-3≤6≥6S0ABCDEFGHIJKMNL简答与应用题α-β剪枝的条件是什么?
(6分)2、回答:α剪枝:若任一极小值层节点的β值小于或等于它任一先辈极大值节点的α值,即α(先辈层)≥β(后继层),则可中止该极小值层中这个MIN节点以下的搜索过程。这个MIN节点最终的倒推值就确定为这个β值。
β剪枝:若任一极大值层节点的α值大于或等于它任一先辈极小值层节点的β值,即α(后继层)≥β(先辈层),则可以中止该极大值层中这个MAX节点以下的搜索过程。这个MAX节点的最终倒推值就确定为这个α值。7.给1~9九个数字排一个序列,使得该序列的前n(n=1,...,9)个数字组成的整数能被n整除。
(1)、讨论哪些知识可以帮助该问题的求解。
(2)、用产生式系统描述该问题.(15分)7、如下的知识可以帮助求解该问题:
(1)序列中,偶数在偶数位置,奇数在奇数位置;
(2)第五个数为5。
综合数据库:
用一个1到9的序列表示:N={x},其中x为1到9的数字之一。
规则集:
r1:IFlen(N)=4THEN{x}∪{5}
r2:IFlen(N)为偶数andn=In(1,3,7,9)THEN{x}∪{n}
r3:IFlen(N)为奇数andn=In(2,4,6,8)THEN{x}∪{n}
其中len(N)为求序列的长度,In(a,b,c,d)为取a、b、c、d之一。
初始状态:{}
结束条件:得到的序列N前i个数组成的整数能被i整除四、应用题(共30分)1、用语义网络表示下列信息:(1)胡途是思源公司的经理,他35岁,住在飞天胡同68号(2)清华大学与北京大学进行蓝球比赛,最后以89:102的比分结束。答:2、图示博弈树,其中末一行的数字为假设的估值,请利用α-β剪枝技术剪去不必要的分枝。(在节点及边上直接加注释)1、将命题:“某个学生读过三国演义”分别用谓词公式和语义网络表示答:四、1、答:谓词公式表示:x(student(x)∧read(x,三国演义))语义网络表示如图:1设有如下问题:(1)有五个相互可直达且距离已知的城市A、B、C、D、E,如图所示;(2)某人从A地出发,去其它四个城市各参观一次后回到A;(3)找一条最短的旅行路线请用产生式规则表示旅行过程。解:=1\*GB3①综合数据库(x)(x)中x可以是一个字母,也可以是一个字符串。=2\*GB3②初始状态(A)=3\*GB3③目标状态(Ax1x2x3x4A)=4\*GB3④规则集:r1:IFL(S)=5THENGOTO(A)r2:IFL(S)<5THENGOTO(B)r3:IFL(S)<5THENGOTO(C)r4:IFL(S)<5THENGOTO(D)r5:IFL(S)<5THENGOTO(E)其中L(S)为走过的城市数,GOTO(x)为走向城市x=5\*GB3⑤路线如下图所示:(A)(A)(AB)(AC)(AD)(AE)(ACB)(ACD)(ACE)(ACDB)(ACDE)(ACDEB)(ACDEBA)751010769108107起始目标最短旅行路线为:A->C->D->E->B->A总距离为5+6+8+10+7=362神州大学和东方大学两校篮球队在东方大学进行一场比赛,结局的比分是85:89,用语义网络表示。状态空间状态空间搜索策略搜索策略盲目搜索启发式搜索广度优先搜索深度优先搜索有界深度优先搜索代价树的广度优先搜索代价树的深度优先搜索局部择优搜索全局择优搜索A*算法与/或树搜索策略盲目搜索广度优先搜索深度及有界深度优先搜索有序搜索特殊情况博弈问题提高搜索效率的方法α-β剪枝技术博弈问题:博弈问题:极大极小分析法:计算出端节点的估值,再推算出父节点的得分。推算的方法是:对“或”节点,选其子节点中一个最大的得分作为父节点的得分,这是为了使自己在可供选择的方案中选一个对自己最有利的方案;对“与”节点,选其子节点中一个最小的得分作为父节点的得分,这是为了立足于最坏的情况。这样计算出的父节点的得分称为倒推值。α-β剪枝技术:对于一个“与”节点来说,它取当前子节点中的最小倒推值作为它倒推值的上界,称此值为β值。对于一个“或”节点来说,它取当前子节点中的最大倒推值作为它倒推值的下界,称此值为α值。其一般规律为:(1)任何“或”节点x的α值如果不能降低其父节点的β值,则对节点x以下的分枝可停止搜索,并使x的倒推值为α。这种剪枝成为β剪枝。(2)任何“与”节点x的β值如果不能升高其父节点的α值,则对节点x以下的分枝可停止搜索,并使x的倒推值为β。这种剪枝成为α剪枝。1图4-1是五城市间的交通路线图,A城市是出发地,E城市是目的地,两城市间的交通费用(代价)如图中数字所示。求从A到E的最小费用交通路线。图4-1图4-1解:先将交通图转换为代价树,如图4-2所示。若用g(x)表示从初始节点s0到节点x的代价,用c(x1,x2)表示从父节点x1到子节点x2的代价,则有:g(x2)=g(x1)+c(x1,x2)AAC1B1D11D2E1E2B2E4C2E33423454523图4-2方法一:代价树的广度优先搜索(扩展节点n,将其子节点放入open表中,计算各子节点的代价,并按各节点的代价对open表中全部节点按从小到大的顺序进行排序(队列))步骤如下:图4-3-1图4-3-1图4-3-2图4-3-2图4-3-3图4-3-3图4-3-4图4-3-4图4-3-5图4-3-5所以,最优路径为A->C->D->E方法二:代价树的深度优先搜索(不一定是最优解)(扩展节点n,将其子节点按代价从小到大的顺序放到open表的首部(栈))步骤如下:AAC1B143图4-4-1虽然D1的代价大于B1的代价,但按照代价树的深度优先搜索策略,要对D1进行扩展,放入closed表中(若按代价树的广度优先搜索,要对B1、D1排序,先扩展B1)4虽然D1的代价大于B1的代价,但按照代价树的深度优先搜索策略,要对D1进行扩展,放入closed表中(若按代价树的广度优先搜索,要对B1、D1排序,先扩展B1)435AC1B1D12图4-4-243435AC1B1D18图4-4-3934E2B2注:该题代价树的深度优先搜索与代价树的广度优先搜索的结果相同,但这只是巧合。一般情况下,这两种方法得到的结果不一定相同。另外,由于代价树的深度优先搜索有可能进入无穷分支的路径,因此它是不完备的。2如下图4-5所示,分别用代价树的广度优先搜索策略和代价树的深度优先搜索策略,求A到E的最短费用路径。图4-5图4-5ACBDE656787解:先将其化成代价树,如图4-6:D1D165AB1C1D2E1C2E2B2E3E466577788图4-6(1)代价树的广度优先搜索,步骤如下:AAB1C167图4-7-1图4-7-1B1B1C167D1A511图4-7-2图4-7-25B15B1C16D1A11D2E17781415图4-7-3图4-7-3E为目标节点,路径为A->C->E,代价为15。(2)代价树的深度优先搜索,步骤如下:B1C1B1C167D1A511C2E2761817B1C167D1A511图4-8-2图4-8-1图4-8-2图4-8-1虽然C1代价低于D1,但按照代价树的深度优先搜索策略,对D1进行扩展,放入closed表中,因为B1扩展的节点为D1,而C1是A节点扩展得到的。E出栈,为目标节点,结束。故解路径为A->B->D->E,代价为17,不是最优解。注:深度优先搜索是不完备的,即使问题有解,也不一定能求得解。得到的解也不一定是最优解(因为是局部优先搜索)。3下图是五城市间的交通费用图,若从西安出发,要求把每个城市都访问一遍,最后到达广州,请找一条最优路线。边上的数字是两城市间的交通费用。北京B北京B上海DA西安S0昆明C广州ESg7570809590120150170160130图4-9解:先画出代价树:AB1AB1C1D1E1C2D2E2B2D3E3B3C3E4D4E5C4E6D5E7B4E8C5E9B5E10E11E12E13E14E15E16809512015017075160130709017013090751307013090751607570图4-10C1C1图4-11-1AB1D11C1图4-11-2AB1D12D2E2250155240C1C1图4-11-3AB1D12D2E2250155240B2D3E3265225185C1图4-11-4C1图4-11-4AB1D12D2E2250155240B2D3E3265225185B3C3E4195250190B4B4E8B3C3E4195250190C1图4-11-5AB1D12D2E2250155240B2D3E3265225185C4E6285225C5E9365355300295E10B5E5D4380340420340E7D5340425E12375故由此得出最优路线为A->B1->D2->C4->E12即A->B->D->C->E,交通费用为375。4设有如图所示的一棵与/或树,请分别用与/或树的广度优先搜索及与/或树的深度优先搜索求出解树。BBCt1t2t3t4t5AD解:(1)与/或树的广度优先搜索先扩展节点A,得到节点B和C,再扩展节点B,得节点t1、t2,因为t1、t2为可解节点,故节点B可解,从而可节点A可解。Bt1Bt1t2A(2)与/或树的深度优先搜索先扩展节点A,得到节点B和C,再扩展节点C,得节点D和t5,t5为可解节点,再扩展节D,得节点t3、t4,因为t3、t4为可解节点,故节点D可解,因为节点D和t5可解,故节点C可解,从而可节点A可解。所以求得解树为:CCt3t4t5AD5设有如图所示的与/或树,请分别按和代价法及最大代价法求解树代价。BBCDt2t1t4At357223621按和代价法:h(B)=7,h(C)=3,h(A)=7+3+5+6=21按最大代价法:h(B)=5,h(C)=2,h(A)=5+5=10附录资料:不需要的可以自行删除Excel的50个使用技巧一、建立分类下拉列表填充项我们常常要将企业的名称输入到表格中,为了保持名称的一致性,利用“数据有效性”功能建了一个分类下拉列表填充项。1.在Sheet2中,将企业名称按类别(如“工业企业”、“商业企业”、“个体企业”等)分别输入不同列中,建立一个企业名称数据库。
2.选中A列(“工业企业”名称所在列),在“名称”栏内,输入“工业企业”字符后,按“回车”键进行确认。仿照上面的操作,将B、C……列分别命名为“商业企业”、“个体企业”……3.切换到Sheet1中,选中需要输入“企业类别”的列(如C列),执行“数据→有效性”命令,打开“数据有效性”对话框。在“设置”标签中,单击“允许”右侧的下拉按钮,选中“序列”选项,在下面的“来源”方框中,输入“工业企业”,“商业企业”,“个体企业”……序列(各元素之间用英文逗号隔开),确定退出。
再选中需要输入企业名称的列(如D列),再打开“数据有效性”对话框,选中“序列”选项后,在“来源”方框中输入公式:=INDIRECT(C1),确定退出。4.选中C列任意单元格(如C4),单击右侧下拉按钮,选择相应的“企业类别”填入单元格中。然后选中该单元格对应的D列单元格(如D4),单击下拉按钮,即可从相应类别的企业名称列表中选择需要的企业名称填入该单元格中。提示:在以后打印报表时,如果不需要打印“企业类别”列,可以选中该列,右击鼠标,选“隐藏”选项,将该列隐藏起来即可。二、建立“常用文档”新菜单在菜单栏上新建一个“常用文档”菜单,将常用的工作簿文档添加到其中,方便随时调用。1.在工具栏空白处右击鼠标,选“自定义”选项,打开“自定义”对话框。在“命令”标签中,选中“类别”下的“新菜单”项,再将“命令”下面的“新菜单”拖到菜单栏。按“更改所选内容”按钮,在弹出菜单的“命名”框中输入一个名称(如“常用文档”)。2.再在“类别”下面任选一项(如“插入”选项),在右边“命令”下面任选一项(如“超链接”选项),将它拖到新菜单(常用文档)中,并仿照上面的操作对它进行命名(如“工资表”等),建立第一个工作簿文档列表名称。重复上面的操作,多添加几个文档列表名称。3.选中“常用文档”菜单中某个菜单项(如“工资表”等),右击鼠标,在弹出的快捷菜单中,选“分配超链接→打开”选项,打开“分配超链接”对话框。通过按“查找范围”右侧的下拉按钮,定位到相应的工作簿(如“工资.xls”等)文件夹,并选中该工作簿文档。重复上面的操作,将菜单项和与它对应的工作簿文档超链接起来。4.以后需要打开“常用文档”菜单中的某个工作簿文档时,只要展开“常用文档”菜单,单击其中的相应选项即可。提示:尽管我们将“超链接”选项拖到了“常用文档”菜单中,但并不影响“插入”菜单中“超链接”菜单项和“常用”工具栏上的“插入超链接”按钮的功能。三、让不同类型数据用不同颜色显示在工资表中,如果想让大于等于2000元的工资总额以“红色”显示,大于等于1500元的工资总额以“蓝色”显示,低于1000元的工资总额以“棕色”显示,其它以“黑色”显示,我们可以这样设置。1.打开“工资表”工作簿,选中“工资总额”所在列,执行“格式→条件格式”命令,打开“条件格式”对话框。单击第二个方框右侧的下拉按钮,选中“大于或等于”选项,在后面的方框中输入数值“2000”。单击“格式”按钮,打开“单元格格式”对话框,将“字体”的“颜色”设置为“红色”。2.按“添加”按钮,并仿照上面的操作设置好其它条件(大于等于1500,字体设置为“蓝色”;小于1000,字体设置为“棕色”)。3.设置完成后,按下“确定”按钮。看看工资表吧,工资总额的数据是不是按你的要求以不同颜色显示出来了。四、制作“专业符号”工具栏在编辑专业表格时,常常需要输入一些特殊的专业符号,为了方便输入,我们可以制作一个属于自己的“专业符号”工具栏。
1.执行“工具→宏→录制新宏”命令,打开“录制新宏”对话框,输入宏名?如“fuhao1”?并将宏保存在“个人宏工作簿”中,然后“确定”开始录制。选中“录制宏”工具栏上的“相对引用”按钮,然后将需要的特殊符号输入到某个单元格中,再单击“录制宏”工具栏上的“停止”按钮,完成宏的录制。仿照上面的操作,一一录制好其它特殊符号的输入“宏”。2.打开“自定义”对话框,在“工具栏”标签中,单击“新建”按钮,弹出“新建工具栏”对话框,输入名称——“专业符号”,确定后,即在工作区中出现一个工具条。切换到“命令”标签中,选中“类别”下面的“宏”,将“命令”下面的“自定义按钮”项拖到“专业符号”栏上(有多少个特殊符号就拖多少个按钮)。3.选中其中一个“自定义按钮”,仿照第2个秘技的第1点对它们进行命名。4.右击某个命名后的按钮,在随后弹出的快捷菜单中,选“指定宏”选项,打开“指定宏”对话框,选中相应的宏(如fuhao1等),确定退出。重复此步操作,将按钮与相应的宏链接起来。5.关闭“自定义”对话框,以后可以像使用普通工具栏一样,使用“专业符号”工具栏,向单元格中快速输入专业符号了。五、用“视面管理器”保存多个打印页面有的工作表,经常需要打印其中不同的区域,用“视面管理器”吧。1.打开需要打印的工作表,用鼠标在不需要打印的行(或列)标上拖拉,选中它们再右击鼠标,在随后出现的快捷菜单中,选“隐藏”选项,将不需要打印的行(或列)隐藏起来。2.执行“视图→视面管理器”命令,打开“视面管理器”对话框,单击“添加”按钮,弹出“添加视面”对话框,输入一个名称(如“上报表”)后,单击“确定”按钮。3.将隐藏的行(或列)显示出来,并重复上述操作,“添加”好其它的打印视面。4.以后需要打印某种表格时,打开“视面管理器”,选中需要打印的表格名称,单击“显示”按钮,工作表即刻按事先设定好的界面显示出来,简单设置、排版一下,按下工具栏上的“打印”按钮,一切就OK了。六、让数据按需排序如果你要将员工按其所在的部门进行排序,这些部门名称既的有关信息不是按拼音顺序,也不是按笔画顺序,怎么办?可采用自定义序列来排序。1.执行“格式→选项”命令,打开“选项”对话框,进入“自定义序列”标签中,在“输入序列”下面的方框中输入部门排序的序列(如“机关,车队,一车间,二车间,三车间”等),单击“添加”和“确定”按钮退出。
2.选中“部门”列中任意一个单元格,执行“数据→排序”命令,打开“排序”对话框,单击“选项”按钮,弹出“排序选项”对话框,按其中的下拉按钮,选中刚才自定义的序列,按两次“确定”按钮返回,所有数据就按要求进行了排序。七、把数据彻底隐藏起来工作表部分单元格中的内容不想让浏览者查阅,只好将它隐藏起来了。1.选中需要隐藏内容的单元格(区域),执行“格式→单元格”命令,打开“单元格格式”对话框,在“数字”标签的“分类”下面选中“自定义”选项,然后在右边“类型”下面的方框中输入“;;;”(三个英文状态下的分号)。2.再切换到“保护”标签下,选中其中的“隐藏”选项,按“确定”按钮退出。3.执行“工具→保护→保护工作表”命令,打开“保护工作表”对话框,设置好密码后,“确定”返回。经过这样的设置以后,上述单元格中的内容不再显示出来,就是使用Excel的透明功能也不能让其现形。提示:在“保护”标签下,请不要清除“锁定”前面复选框中的“∨”号,这样可以防止别人删除你隐藏起来的数据。八、让中、英文输入法智能化地出现在编辑表格时,有的单元格中要输入英文,有的单元格中要输入中文,反复切换输入法实在不方便,何不设置一下,让输入法智能化地调整呢?选中需要输入中文的单元格区域,执行“数据→有效性”命令,打开“数据有效性”对话框,切换到“输入法模式”标签下,按“模式”右侧的下拉按钮,选中“打开”选项后,“确定”退出。以后当选中需要输入中文的单元格区域中任意一个单元格时,中文输入法(输入法列表中的第1个中文输入法)自动打开,当选中其它单元格时,中文输入法自动关闭。九、让“自动更正”输入统一的文本你是不是经常为输入某些固定的文本,如《电脑报》而烦恼呢?那就往下看吧。1.执行“工具→自动更正”命令,打开“自动更正”对话框。2.在“替换”下面的方框中输入“pcw”(也可以是其他字符,“pcw”用小写),在“替换为”下面的方框中输入“《电脑报》”,再单击“添加”和“确定”按钮。3.以后如果需要输入上述文本时,只要输入“pcw”字符?此时可以不考虑“pcw”的大小写?,然后确认一下就成了。十、在Excel中自定义函数Excel函数虽然丰富,但并不能满足我们的所有需要。我们可以自定义一个函数,来完成一些特定的运算。下面,我们就来自定义一个计算梯形面积的函数:1.执行“工具→宏→Visual
Basic编辑器”菜单命令(或按“Alt+F11”快捷键),打开Visual
Basic编辑窗口。2.在窗口中,执行“插入→模块”菜单命令,插入一个新的模块——模块1。3.在右边的“代码窗口”中输入以下代码:Function
V(a,b,h)V
=
h*(a+b)/2End
Function4.关闭窗口,自定义函数完成。以后可以像使用内置函数一样使用自定义函数。提示:用上面方法自定义的函数通常只能在相应的工作簿中使用十一、表头下面衬张图片为工作表添加的背景,是衬在整个工作表下面的,能不能只衬在表头下面呢?1.执行“格式→工作表→背景”命令,打开“工作表背景”对话框,选中需要作为背景的图片后,按下“插入”按钮,将图片衬于整个工作表下面。2.在按住Ctrl键的同时,用鼠标在不需要衬图片的单元格(区域)中拖拉,同时选中这些单元格(区域)。3.按“格式”工具栏上的“填充颜色”右侧的下拉按钮,在随后出现的“调色板”中,选中“白色”。经过这样的设置以后,留下的单元格下面衬上了图片,而上述选中的单元格(区域)下面就没有衬图片了(其实,是图片被“白色”遮盖了)。提示?衬在单元格下面的图片是不支持打印的。十二、用连字符“&”来合并文本如果我们想将多列的内容合并到一列中,不需要利用函数,一个小小的连字符“&”就能将它搞定(此处假定将B、C、D列合并到一列中)。1.在D列后面插入两个空列(E、F列),然后在D1单元格中输入公式:=B1&C1&D1。2.再次选中D1单元格,用“填充柄”将上述公式复制到D列下面的单元格中,B、C、D列的内容即被合并到E列对应的单元格中。3.选中E列,执行“复制”操作,然后选中F列,执行“编辑→选择性粘贴”命令,打开“选择性粘贴”对话框,选中其中的“数值”选项,按下“确定”按钮,E列的内容(不是公式)即被复制到F列中。4.将B、C、D、E列删除,完成合并工作。提示:完成第1、2步的操作,合并效果已经实现,但此时如果删除B、C、D列,公式会出现错误。故须进行第3步操作,将公式转换为不变的“值”。十三、快速打印学生成绩条常有朋友问“如何打印成绩条”这样的问题,有不少人采取录制宏或VBA的方法来实现,这对于初学者来说有一定难度。出于此种考虑,我在这里给出一种用函数实现的简便方法。此处假定学生成绩保存在Sheet1工作表的A1至G64单元格区域中,其中第1行为标题,第2行为学科名称。1.切换到Sheet2工作表中,选中A1单元格,输入公式:=IF(MOD(ROW(),3)=0,″″,IF(0MOD?ROW(),3(=1,sheet1!A$2,INDEX(sheet1!$A:$G,INT(((ROW()+4)/3)+1),COLUMN())))。2.再次选中A1单元格,用“填充柄”将上述公式复制到B1至G1单元格中;然后,再同时选中A1至G1单元格区域,用“填充柄”将上述公式复制到A2至G185单元格中。至此,成绩条基本成型,下面简单修饰一下。3.调整好行高和列宽后,同时选中A1至G2单元格区域(第1位学生的成绩条区域),按“格式”工具栏“边框”右侧的下拉按钮,在随后出现的边框列表中,选中“所有框线”选项,为选中的区域添加边框(如果不需要边框,可以不进行此步及下面的操作)。4.同时选中A1至G3单元格区域,点击“常用”工具栏上的“格式刷”按钮,然后按住鼠标左键,自A4拖拉至G186单元格区域,为所有的成绩条添加边框。按“打印”按钮,即可将成绩条打印出来。十四、Excel帮你选函数在用函数处理数据时,常常不知道使用什么函数比较合适。Excel的“搜索函数”功能可以帮你缩小范围,挑选出合适的函数。执行“插入→函数”命令,打开“插入函数”对话框,在“搜索函数”下面的方框中输入要求(如“计数”),然后单击“转到”按钮,系统即刻将与“计数”有关的函数挑选出来,并显示在“选择函数”下面的列表框中。再结合查看相关的帮助文件,即可快速确定所需要的函数。十五、同时查看不同工作表中多个单元格内的数据有时,我们编辑某个工作表(Sheet1)时,需要查看其它工作表中(Sheet2、Sheet3……)某个单元格的内容,可以利用Excel的“监视窗口”功能来实现。执行“视图→工具栏→监视窗口”命令,打开“监视窗口”,单击其中的“添加监视”按钮,展开“添加监视点”对话框,用鼠标选中需要查看的单元格后,再单击“添加”按钮。重复前述操作,添加其它“监视点”。以后,无论在哪个工作表中,只要打开“监视窗口”,即可查看所有被监视点单元格内的数据和相关信息。十六、为单元格快速画边框在Excel2002以前的版本中,为单元格区域添加边框的操作比较麻烦,Excel2002对此功能进行了全新的拓展。单击“格式”工具栏上“边框”右侧的下拉按钮,在随后弹出的下拉列表中,选“绘图边框”选项,或者执行“视图→工具栏→边框”命令,展开“边框”工具栏。单击工具栏最左侧的下拉按钮,选中一种边框样式,然后在需要添加边框的单元格区域中拖拉,即可为相应的单元格区域快速画上边框。提示:①如果画错了边框,没关系,选中工具栏上的“擦除边框”按钮,然后在错误的边框上拖拉一下,就可以清除掉错误的边框。②如果需要画出不同颜色的边框,可以先按工具栏右侧的“线条颜色”按钮,在随后弹出的调色板中选中需要的颜色后,再画边框即可。③这一功能还可以在单元格中画上对角的斜线。十七、控制特定单元格输入文本的长度你能想象当你在该输入四位数的单元格中却填入了一个两位数,或者在该输入文字的单元格中你却输入了数字的时候,Excel就能自动判断、即时分析并弹出警告,那该多好啊!要实现这一功能,对Excel来说,也并不难。例如我们将光标定位到一个登记“年份”的单元格中,为了输入的统一和计算的方便,我们希望“年份”都用一个四位数来表示。所以,我们可以单击“数据”菜单的“有效性”选项。在“设置”卡片“有效性条件”的“允许”下拉菜单中选择“文本长度”。然后在“数据”下拉菜单中选择“等于”,且“长度”为“4”。同时,我们再来到“出错警告”卡片中,将“输入无效数据时显示的出错警告”设为“停止”,并在“标题”和“错误信息”栏中分别填入“输入文本非法!”和“请输入四位数年份。”字样。很显然,当如果有人在该单元格中输入的不是一个四位数时,Excel就会弹出示的警告对话框,告诉你出错原因,并直到你输入了正确“样式”的数值后方可继续录入。神奇吧?其实,在Excel的“数据有效性”判断中,还有许多特殊类型的数据格式可选,比如“文本类型”啊,“序列大小”啊,“时间远近”啊,如你有兴趣,何不自作主张,自己设计一种检测标准,让你的Excel展示出与众不同的光彩呢。十八、成组填充多张表格的固定单元格我们知道每次打开Excel,软件总是默认打开多张工作表。由此就可看出Excel除了拥有强大的单张表格的处理能力,更适合在多张相互关联的表格中协调工作。要协调关联,当然首先就需要同步输入。因此,在很多情况下,都会需要同时在多张表格的相同单元格中输入同样的内容。那么如何对表格进行成组编辑呢?首先我们单击第一个工作表的标签名“Sheet1”,然后按住Shift键,单击最后一张表格的标签名“Sheet3”(如果我们想关联的表格不在一起,可以按住Ctrl键进行点选)。此时,我们看到Excel的标题栏上的名称出现了“工作组”字样,我们就可以进行对工作组的编辑工作了。在需要一次输入多张表格内容的单元格中随便写点什么,我们发现,“工作组”中所有表格的同一位置都显示出相应内容了。但是,仅仅同步输入是远远不够的。比如,我们需要将多张表格中相同位置的数据统一改变格式该怎么办呢?首先,我们得改变第一张表格的数据格式,再单击“编辑”菜单的“填充”选项,然后在其子菜单中选择“至同组工作表”。这时,Excel会弹出“填充成组工作表”的对话框,在这里我们选择“格式”一项,点“确定”后,同组中所有表格该位置的数据格式都改变了。十九、改变文本的大小写在Excel中,为表格处理和数据运算提供最强大支持的不是公式,也不是数据库,而是函数。不要以为Excel中的函数只是针对数字,其实只要是写进表格中的内容,Excel都有对它编辑的特殊函数。例如改变文本的大小写。在Excel2002中,至少提供了三种有关文本大小写转换的函数。它们分别是:“=UPPER(源数据格)”,将文本全部转换为大写;“=LOWER(源数据格)”,将文本全部转换成小写;“=PROPER(源数据格)”,将文本转换成“适当”的大小写,如让每个单词的首字母为大写等。例如,我们在一张表格的A1单元格中输入小写的“excel”,然后在目标单元格中输入“=UPPER(A1)”,回车后得到的结果将会是“EXCEL”。同样,如果我们在A3单元格中输入“mr.weiwei”,然后我们在目标单元格中输入“=PROPER(A3)”,那么我们得到的结果就将是“Mr.Weiwei”了。二十、提取字符串中的特定字符除了直接输入外,从已存在的单元格内容中提取特定字符输入,绝对是一种省时又省事的方法,特别是对一些样式雷同的信息更是如此,比如员工名单、籍贯等信息。如果我们想快速从A4单元格中提取称谓的话,最好使用“=RIGHT(源数据格,提取的字符数)”函数,它表示“从A4单元格最右侧的字符开始提取2个字符”输入到此位置。当然,如果你想提取姓名的话,则要使用“=LEFT(源数据格,提取的字符数)”函数了。还有一种情况,我们不从左右两端开始,而是直接从数据中间提取几个字符。比如我们要想从A5单元格中提取“武汉”两个字时,就只须在目标单元格中输入“=MID(A5,4,2)”就可以了。意思是:在A5单元格中提取第4个字符后的两个字符,也就是第4和第5两个字。二十一、把基数词转换成序数词将英文的基数词转换成序数词是一个比较复杂的问题。因为它没有一个十分固定的模式:大多数的数字在变成序数词都是使用的“th”后缀,但大凡是以“1”、“2”、“3”结尾的数字却分别是以“st”、“nd”和“rd”结尾的。而且,“11”、“12”、“13”这3个数字又不一样,它们却仍然是以“th”结尾的。因此,实现起来似乎很复杂。其实,只要我们理清思路,找准函数,只须编写一个公式,就可轻松转换了。不信,请看:“=A2&IF(OR(VALUE(RIGHT(A2,2))={11,12,13}),″th″,IF(OR(VALUE(RIGHT(A2))={1,2,3,},CHOOSE(RIGHT(A2),″st″,″nd″,″rd″),″th″))”。该公式尽管一长串,不过含义却很明确:①如果数字是以“11”、“12”、“13”结尾的,则加上“th”后缀;②如果第1原则无效,则检查最后一个数字,以“1”结尾使用“st”、以“2”结尾使用“nd”、以“3”结尾使用“rd”;③如果第1、2原则都无效,那么就用“th”。因此,基数词和序数词的转换实现得如此轻松和快捷。二十二、用特殊符号补齐位数和财务打过交道的人都知道,在账面填充时有一种约定俗成的“安全填写法”,那就是将金额中的空位补齐,或者在款项数据的前面加上“$”之类的符号。其实,在Excel中也有类似的输入方法,那就是“REPT”函数。它的基本格式是“=REPT(“特殊符号”,填充位数)”。比如,我们要在中A2单元格里的数字结尾处用“#”号填充至16位,就只须将公式改为“=(A2&REPT(″#″,16-LEN(A2)))”即可;如果我们要将A3单元格中的数字从左侧用“#”号填充至16位,就要改为“=REPT(″#″,16-LEN(A3)))&A3”;另外,如果我们想用“#”号将A4中的数值从两侧填充,则需要改为“=REPT(″#″,8-LEN(A4)/2)&A4&REPT(″#″)8-LEN(A4)/2)”;如果你还嫌不够专业,要在A5单元格数字的顶头加上“$”符号的话,那就改为:“=(TEXT(A5,″$#,##0.00″(&REPT(″#″,16-LEN(TEXT(A5,″$#,##0.00″))))”,一定能满足你的要求。二十三、创建文本直方图除了重复输入之外,“REPT”函数另一项衍生应用就是可以直接在工作表中创建由纯文本组成的直方图。它的原理也很简单,就是利用特殊符号的智能重复,按照指定单元格中的计算结果表现出长短不一的比较效果。比如我们首先制作一张年度收支平衡表,然后将“E列”作为直方图中“预算内”月份的显示区,将“G列”则作为直方图中“超预算”的显示区。然后根据表中已有结果“D列”的数值,用“Wingdings”字体的“N”字符表现出来。具体步骤如下:在E3单元格中写入公式“=IF(D3<0,REPT(″n″,-ROUND(D3*100,0)),″″)”,然后选中它并拖动“填充柄”,使E列中所有行都能一一对应D列中的结果;接着在G3单元格中写入公式“=IF(D3>0,REPT(″n″,ROUND(D3*100,0)),″″)”,也拖动填充柄至G14。我们看到,一个没有动用Excel图表功能的纯文本直方图已展现眼前,方便直观,简单明了。二十四、计算单元格中的总字数有时候,我们可能对某个单元格中字符的数量感兴趣,需要计算单元格中的总字数。要解决这个问题,除了利用到“SUBSTITUTE”函数的虚拟计算外,还要动用“TRIM”函数来删除空格。比如现在A1单元格中输入有“howmanywords?”字样,那么我们就可以用如下的表达式来帮忙:“=IF(LEN(A1)=0,0,LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1),″,″,″″))+1)”该式的含义是先用“SUBSTITUTE”函数创建一个新字符串,并且利用“TRIM”函数删除其中字符间的空格,然后计算此字符串和原字符串的数位差,从而得出“空格”的数量,最后将空格数+1,就得出单元格中字符的数量了。二十五、关于欧元的转换这是Excel2002中的新工具。如果你在安装Excel2002时选择的是默认方式,那么很可能不能在“工具”菜单中找到它。不过,我们可以先选择“工具”菜单中的“加载宏”,然后在弹出窗口中勾选“欧元工具”选项,“确定”后Excel2002就会自行安装了。完成后我们再次打开“工具”菜单,单击“欧元转换”,一个独立的专门用于欧元和欧盟成员国货币转换的窗口就出现了。与Excel的其他函数窗口一样,我们可以通过鼠标设置货币转换的“源区域”和“目标区域”,然后再选择转换前后的不同币种即可。所示的就是“100欧元”分别转换成欧盟成员国其他货币的比价一览表。当然,为了使欧元的显示更显专业,我们还可以点击Excel工具栏上的“欧元”按钮,这样所有转换后的货币数值都是欧元的样式了。二十六、给表格做个超级搜索引擎我们知道,Excel表格和Word中的表格最大的不同就是Excel是将填入表格中的所有内容(包括静态文本)都纳入了数据库的范畴之内。我们可以利用“函数查询”,对目标数据进行精确定位,就像网页中的搜索引擎一样。比如在所示的表格中,从A1到F7的单元格中输入了多名同学的各科成绩。而在A8到A13的单元格中我们则建立了一个“函数查询”区域。我们的设想是,当我们在“输入学生姓名”右边的单元格,也就是C8格中输入任何一个同学的名字后,其下方的单元格中就会自动显示出该学生的各科成绩。具体实现的方法如下:将光标定位到C9单元格中,然后单击“插入”之“函数”选项。在如图18弹出的窗口中,选择“VLOOKUP”函数,点“确定”。在随即弹出的“函数参数”窗口中我们设置“Lookup_value”(指需要在数据表首列中搜索的值)为“C8”(即搜索我们在C8单元格中填入的人名);“Table_array”(指数据搜索的范围)为“A2∶B6”(即在所有学生的“语文”成绩中搜索);“Col_vindex_num”(指要搜索的数值在表格中的序列号)为“2”(即数值在第2列);“Range_lookup”(指是否需要精确匹配)为“FALSE”(表明不是。如果是,就为“TURE”)。设定完毕按“确定”。此时回到表格,单击C9单元格,我们看到“fx”区域中显示的命令行为“=VLOOKUP(C8,A2∶B6,2,FALSE)”。复制该命令行,在C10、C11、C12、C13单元格中分别输入:“=VLOOKUP(C8,A2∶C6,3,FALSE)”;“=VLOOKUP(C8,A2∶D6,4,FALSE)”;“=VLOOKUP(C8,A2∶E6,5,FALSE)”;“=VLOOKUP(C8,A2∶F6,6,FALSE)”(其参数意义同C9中一样,不再赘述)。接下来,我们就来检验“VLOOKUP”函数的功效。试着在“C8”单元格中输入某个学生名,比如“赵耀”,回车之下我们会发现,其下方每一科目的单元格中就自动显示出该生的入学成绩了。二十七、Excel工作表大纲的建立和Word的大纲视图一样,Excel这个功能主要用于处理特别大的工作表时,难以将关键条目显示在同一屏上的问题。如果在一张表格上名目繁多,但数据类型却又有一定的可比性,那么我们完全可以先用鼠标选择数据区域,然后点击“数据”菜单的“分类汇总”选项。并在弹出菜单的“选定汇总项”区域选择你要汇总数据的类别。最后,如图19所示,现在的表格不是就小了许多吗?当然,如果你还想查看明细的话,单击表格左侧的“+”按钮即可。二十八、插入“图示”尽管有14大类50多种“图表”样式给Excel撑着腰,但对于纷繁复杂的数据关系,常规的图表表示方法仍显得枯燥和缺乏想象力。因此在最新版本Excel2002中加入了“图示”的功能。虽然在“插入”菜单的“图示”窗口中只有区区6种样式,但对于说明数据之间的结构却起到了“四两拨千斤”的效果。比如要显示数据的层次关系可以选择“组织结构图”;而要表达资金的流通过程则可以选择“循环图”;当然,要说明各种数据的交叉重叠性可以选择“维恩图”。你看,如图20所示的维恩图多么漂亮。而且你还可以右击该图示,调出“图示”工具栏。随心所欲地设置“图示样式库”甚至还可以多添加几个圆环。二十九、熟悉Excel的“从文本到语音”这是Excel2002中的一个抢眼的新功能。它就是让Office软件不仅能写、能算,还要能看、能说。尽管目前已经有许多软件都致力于文本的机器朗读,但微软的Office不论从语音的柔和度和语气的抑扬顿挫都是其它同类软件不可比拟的。按照Office的默认安装,你可能还不能在Excel的菜单中找到它,在我们确认安装了“从文本到语音”的选项后,就可以在Excel的“工具”菜单中看到“语音”项目了。如图21所示,打开一个表格,随便选择其中的内容,然后单击“从文本到语音”工具栏上的“朗读单元格”按钮,此时一个带有磁性的声音就开始一字一句地朗读了。值得一提的是,当碰到标点符号时,Excel的朗读会自动停顿一会儿,然后再接着朗读,这一点和其他软件完全不同,笔者认为这样的处理更加自然。还有一点需要说明的是,如果你想调整Excel2002中语音朗读的速度,可以在“控制面板”中双击“语音”图标,然后在“文字到语音”卡片上调整即可三十、Excel中“摄影”功能的妙用这个功能比较另类,似乎
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国超声波折叠人体秤行业市场发展状况及投资前景规划研究报告
- 2025年斜屋面挂瓦劳务合作工程合同样本2篇
- 2025年度环卫设施运维保障服务合同3篇
- 二手房买卖委托合同标准范文(2024版)
- 2025年房产共有份额转让合同3篇
- 2024年燃料油现货交易市场会员服务合同汇编3篇
- 2025年新能源发电站35KV变电站接入合同3篇
- 2024版代建合作合同范本:环保项目3篇
- 咖啡馆企业文化构建考核试卷
- 2024版股权股份转让合同范本
- 《新生儿预防接种》课件
- 小学五年级上册数学寒假作业每日一练
- DB1303T382-2024 创伤性休克患者护理指南
- 2024年03月内蒙古中国银行内蒙古分行春季校园招考笔试历年参考题库附带答案详解
- 2024-2025学年华东师大新版八年级上册数学期末复习试卷(含详解)
- 《道路车辆 48V供电电压的电气及电子部件 电性能要求和试验方法》文本以及编制说明
- 2024年新高考I卷数学高考试卷(原卷+答案)
- 十八项医疗核心制度考试题与答案
- 2024年鄂尔多斯市国资产投资控股集团限公司招聘管理单位遴选500模拟题附带答案详解
- 篝火晚会流程
- 船形乌头提取工艺优化
评论
0/150
提交评论