结构力学求解器3.0,详解啊!

你好!能给代码解析一下嘛。我要具体的解决方案啊。, 你好!能给代码解析一下嘛。我
你好!能给代码解析一下嘛。我要具体的解决方案啊。 问题补充:
huyao132 你好!能给代码解析一下嘛。我要具体的解决方案啊。
希望能帮到你,再申请了个固定IP地址,再拨号与总部连接就OK了,再填上总部分配的本地IP地址(事先在VPN硬件路由器里设置好。简单的,我公司的这个最多设置5个)。子公司在网络连接里新建个VPN连接我公司用的是VPN硬件路由器,填上固定IP地址。子公司先上网。一千来元钱买的今天晚上和同学去看了电影晚秋。。说实话我是奔着男色去的~哈哈~但素捏…我表示很不淡定啊…完全一头雾水好嘛亲…跟晚秋比黑天鹅的迷茫算个毛线啊!!!o&_&o是楼主智商退化了嘛。。。⊙﹏⊙有木有看过的同学跟我说下你的看法呀。。还有啊。。玄彬到底有木有死呀。。玉子到底是谁杀的啊。。百度上搜索影评脚得吧~越看影评越迷茫的样纸。。。各种玄乎各种阴谋论啊。。迷雾你快点散掉!!!散掉!!!o&_&o
满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗满200字了吗~·  
楼主发言:1次 发图:0张
  我也没看懂,个人觉得裕子是被他老公杀了又把罪推给了男主。最后到底男女主角有没有见面,我也很想知道。  
  回复第1楼,@鱼被淹死咯  我也没看懂,个人觉得裕子是被他老公杀了又把罪推给了男主。最后到底男女主角有没有见面,我也很想知道。  [本帖发自天涯社区手机客户端]  --------------------------  是呀!!好像知道是汤唯在自言自语还是男主真的出现了哦。。唉唉。。最讨厌这种悬念得开放式结局了。。o&_&o  
  莫非我的帖子是毒药。。大家快看到我看到我!!!看这里看这里…  
  @蘑菇小姐001
23:25:00  今天晚上和同学去看了电影晚秋。。说实话我是奔着男色去的~哈哈~但素捏…我表示很不淡定啊…完全一头雾水好嘛亲…跟晚秋比黑天鹅的迷茫算个毛线啊!!!o&_&o是楼主智商退化了嘛。。。⊙﹏⊙有木有看过的同学跟我说下你的看法呀。。还有啊。。玄彬到底有木有死呀。。玉子到底是谁杀的啊。。百度上搜索影评脚得吧~越看影评越迷茫的样纸。。。各种玄乎各种阴谋论啊。。迷雾你快点散掉!!!散掉!!!o&.....  -----------------------------  LZ,我不会告诉你,晚秋其实是个悬疑剧..悬疑剧呀,有木有??!!!!
  @蘑菇小姐001
23:46:17  回复第1楼,@鱼被淹死咯  我也没看懂,个人觉得裕子是被他老公杀了又把罪推给了男主。最后到底男女主角有没有见面,我也很想知道。  [本帖发自天涯社区手机客户端]  --------------------------  是呀!!好像知道是汤唯在自言自语还是男主真的出现了哦。。唉唉。。最讨厌这种悬念得开放式结局了。。o&_&o......  -----------------------------  木有出现呀,丫臆想的,要我说男主是跳河了,不然怎么那么肯定的说2年后这里等她..女主也许意识到这一点了.所以最后说了句
好久不见..
  回复第2楼,@蘑菇小姐001  回复第1楼,@鱼被淹死咯  我也没看懂,个人觉得裕子是被他老公杀了又把罪推给了男主。最后到底男...  --------------------------  我等果然是粗犷体质,不适合文艺路线。  
  勋被抓了吧```应该是把玉子的老公KA了```没有出现
  回复第4楼,@念猫某某  @蘑菇小姐001
23:25:00  今天晚上和同学去看了电影晚秋。。说实话我是奔着男色去的~哈哈~但素捏…我表示很不淡定啊…完全一头雾水好嘛亲…跟晚秋比黑天鹅的迷茫算个毛线啊!!!o&_&o是楼主智商退化了嘛。。。⊙﹏⊙有木有看过的同学跟我说下你的看法呀。。还有啊。。玄彬到底有木有死呀。。玉子到底是谁杀的啊。。百度上搜索影评脚得吧~越看影评越迷茫的样纸。。。各种玄乎各种阴谋论啊。。迷雾你快点散掉!!!散掉!!!o&.....  -----------------------------  LZ,我不会告诉你,晚秋其实是个悬疑剧..悬疑剧呀,有木有??!!!!  --------------------------  披着爱情剧的悬疑剧啊有木有!!!!o&_&o  
  回复第5楼,@念猫某某  @蘑菇小姐001
23:46:17  回复第1楼,@鱼被淹死咯  我也没看懂,个人觉得裕子是被他老公杀了又把罪推给了男主。最后到底男女主角有没有见面,我也很想知道。  [本帖发自天涯社区手机客户端]  --------------------------  是呀!!好像知道是汤唯在自言自语还是男主真的出现了哦。。唉唉。。最讨厌这种悬念得开放式结局了。。o&_&o......  -----------------------------  木有出现呀,丫臆想的,要我说男主是跳河了,不然怎么那么肯定的说2年后这里等她..女主也许意识到这一点了.所以最后说了句
好久不见..  --------------------------  哇。。。这倒是个新观点!!!!哈哈,突然觉得被你说的恐怖森森的。。跳河了在这里等她。。我想到了透明烟状的玄彬得魂==。。。。阿弥陀佛。。。  
  回复第7楼,@忍冬凋零  勋被抓了吧```应该是把玉子的老公KA了```没有出现  --------------------------  我还以为他们会在监狱相见然后爱的死去活来呢==。。。  
  看完了也有疑惑 并且觉得自己不适合看这种片子 也不喜欢玄冰
  完了,我肯定没认真看,这些我完全没看出来  我觉得太难看了,中间又跳了些  果然是因为我跳着看了
  有人专门扒的。。好像是在百度。。反正我感觉挺对的- - 一下子也秒数不出来。。也不知道帖子在哪。。你自己搜搜- -
  结局是为了留白吧,为什么要说透呢?
  晚秋就是一白开水,木有意思。。。
  那个半老徐娘看鸭子不肯跟她私奔,就进旅馆自杀,或者是被他老公杀了嫁祸于鸭子,鸭子是被警察叔叔带走了,这种罪应该要蹲好久,所以两年后苦瓜女出来的时候当然等不到鸭子了。  跟男朋友去看电影的时候我知道他喜欢看动作片,可是他说听我的,就看了这个,没到一半就那个后悔呀,从头到尾的苦瓜脸。男朋友总结说,就跟死了娘似的,然后加一句,人就是死了娘。。。
  回复第11楼,@公子兮墨  看完了也有疑惑 并且觉得自己不适合看这种片子 也不喜欢玄冰  --------------------------  觉得玄彬沧桑了。。T_T  
  玉子可能是被他老公杀害的,然后栽赃给熏,当熏知道后和安娜吻别并表示永远等她,之后回到车上,中间有一段湖水的特写,熏就是在安娜睡着的这段时间选择自尽的,这样就可以永远在他们表白的地方等她,买咖啡回来的时候安娜也去了湖边,警车也停在了湖边,我猜应该是熏自尽的地方,这是我反复看片子加上参考别人得出的,大家一起讨论。  现在看起来宣传真是强大,之前的期待有点不值得
  回复第12楼,@哇哈哈是蔷薇  完了,我肯定没认真看,这些我完全没看出来  我觉得太难看了,中间又跳了些  果然是因为我跳着看了  --------------------------  我同学也是。。各种打哈欠各种急~哈哈,话说快到结束的时候才发现高潮。。唉。。  
  回复第13楼,@o范er丶  有人专门扒的。。好像是在百度。。反正我感觉挺对的- - 一下子也秒数不出来。。也不知道帖子在哪。。你自己搜搜- -  --------------------------  我搜晚秋影评只有豆瓣那个啊。。。你看的是哪里得呀。。求链接o&_&o  
  回复第14楼,@lap790215  结局是为了留白吧,为什么要说透呢?  --------------------------  o&_&o我我我。。。我面壁去!!  
  回复第15楼,@无心似雪  晚秋就是一白开水,木有意思。。。  --------------------------  是啊。。。不过也有人说这是因为它意境深==  
  回复第16楼,@燕子飞时  那个半老徐娘看鸭子不肯跟她私奔,就进旅馆自杀,或者是被他老公杀了嫁祸于鸭子,鸭子是被警察叔叔带走了,这种罪应该要蹲好久,所以两年后苦瓜女出来的时候当然等不到鸭子了。  跟男朋友去看电影的时候我知道他喜欢看动作片,可是他说听我的,就看了这个,没到一半就那个后悔呀,从头到尾的苦瓜脸。男朋友总结说,就跟死了娘似的,然后加一句,人就是死了娘。。。  --------------------------  男主肯定是被她老公陷害了所以没有办法证明自己没杀人!!啊!!那这样说是悲剧了??!!!!啊啊啊!!!!桑感。。。o&_&o
话说,你男朋友那个我承认我笑了,哈哈  
  回复第18楼,@cencenbao  玉子可能是被他老公杀害的,然后栽赃给熏,当熏知道后和安娜吻别并表示永远等她,之后回到车上,中间有一段湖水的特写,熏就是在安娜睡着的这段时间选择自尽的,这样就可以永远在他们表白的地方等她,买咖啡回来的时候安娜也去了湖边,警车也停在了湖边,我猜应该是熏自尽的地方,这是我反复看片子加上参考别人得出的,大家一起讨论。  现在看起来宣传真是强大,之前的期待有点不值得  --------------------------  我也觉得。。期待太多了。。唉
啊???自杀啦??!!他为什么要自杀啊!!!天呐!!!啊。。你在哪里看到的啊!!!求链接~~  
  回复第18楼,@cencenbao  玉子可能是被他老公杀害的,然后栽赃给熏,当熏知道后和安娜吻别并表示永远等她,之后回到车上,中间有一段湖水的特写,熏就是在安娜睡着的这段时间选择自尽的,这样就可以永远在他们表白的地方等她,买咖啡回来的时候安娜也去了湖边,警车也停在了湖边,我猜应该是熏自尽的地方,这是我反复看片子加上参考别人得出的,大家一起讨论。  现在看起来宣传真是强大,之前的期待有点不值得  --------------------------  我也觉得。。期待太多了。。唉
啊???自杀啦??!!他为什么要自杀啊!!!天呐!!!啊。。你在哪里看到的啊!!!求链接~~  
  玉子当然是玉子的老公杀的啊,她老公把包包给勋,就是为了栽赃他啊!!  勋肯定是死了,都没来赴约,被玉子老公这样的黑手党搞进监狱,肯定是凶多吉少了。。。  杯具啊。。。
  @蘑菇小姐001
08:51:50  回复第18楼,@cencenbao  玉子可能是被他老公杀害的,然后栽赃给熏,当熏知道后和安娜吻别并表示永远等她,之后回到车上,中间有一段湖水的特写,熏就是在安娜睡着的这段时间选择自尽的,这样就可以永远在他们表白的地方等她,买咖啡回来的时候安娜也去了湖边,警车也停在了湖边,我猜应该是熏自尽的地方,这是我反复看片子加上参考别人得出的,大家一起讨论。  现在看起来宣传真是强大,之前的期待有点不...........  -----------------------------  自杀神马的,我也没看出来。。。
  @蘑菇小姐001  ====================================================================  我觉得最后两个人见面了...你注意听,汤唯在最后说:it spent a long time,然后有一个男声的“嗯”,然后汤唯就笑起来了......我个人认为玉子有可能是自杀,她自己或许也想到了自己的老公绝对不会放过自己.....
  @蘑菇小姐001
08:50:22  回复第18楼,@cencenbao  玉子可能是被他老公杀害的,然后栽赃给熏,当熏知道后和安娜吻别并表示永远等她,之后回到车上,中间有一段湖水的特写,熏就是在安娜睡着的这段时间选择自尽的,这样就可以永远在他们表白的地方等她,买咖啡回来的时候安娜也去了湖边,警车也停在了湖边,我猜应该是熏自尽的地方,这是我反复看片子加上参考别人得出的,大家一起讨论。  现在看起来宣传真是强大,之前的期待有点不...........  -----------------------------  103.50有个湖水的特写,有泛水的声音,之后接着就是安娜醒来麦咖啡找人警车来这一系列动作,自杀是我根据剧情猜测的,不过好像网上也没说到底自杀还是什么的。不过,怀疑合理性,一个鸭子会为了一个认识几天的女人自杀,这也太。。。。。。。。了吧
  @COCO小姐驾到
09:02:03  @蘑菇小姐001
08:51:50  回复第18楼,@cencenbao  玉子可能是被他老公杀害的,然后栽赃给熏,当熏知道后和安娜吻别并表示永远等她,之后回到车上,中间有一段湖水的特写,熏就是在安娜睡着的这段时间选择自尽的,这样就可以永远在他们表白的地方等她,买咖啡回来的时候安娜也去了湖边,警车也停在了湖边,我猜应该是熏自尽的地方,这是我反复看片子加上参考别人得出的...........  -----------------------------  103.50有个湖水的特写,有泛水的声音,之后接着就是安娜醒来麦咖啡找人警车来这一系列动作,自杀是我根据剧情猜测的,不过好像网上也没说到底自杀还是什么的。不过,怀疑合理性,一个鸭子会为了一个认识几天的女人自杀,这也太。。。。。。。。了吧
  @cencenbao
14:03:40  103.50有个湖水的特写,有泛水的声音,之后接着就是安娜醒来麦咖啡找人警车来这一系列动作,自杀是我根据剧情猜测的,不过好像网上也没说到底自杀还是什么的。不过,怀疑合理性,一个鸭子会为了一个认识几天的女人自杀,这也太。。。。。。。。了吧   -------------------------------------  亲啊,就算他自杀,也不是为了认识几天的女人,是被迫的啦,反正进监狱也是死路一条,黑手党神马的,很恐怖的。。。
  在影院看到了没去看……是不是“晚到的秋波”?  
  回复第18楼,@cencenbao  玉子可能是被他老公杀害的,然后栽赃给熏,当熏知道后和安娜吻别并表示永远等她,之后回到车上,中间有一段湖水的特写,熏就是在安娜睡着的这段时间选择自尽的,这样就可以永远在他们表白的地方等她,买咖啡回来的时候安娜也去了湖边,警车也停在了湖边,我猜应该是熏自尽的地方,这是我反复看片子加上参考别人得出的,大家一起讨论。  现在看起来宣传真是强大,之前的期待有点不值得  ------------------------基本是这样 当时心里想着 你们跑吧 私奔吧 啊啊啊 好喜欢这两个的 好搭
  那时候就好想说 你们跑吧 跑吧 私奔吧
  回复第26楼,@COCO小姐驾到  玉子当然是玉子的老公杀的啊,她老公把包包给勋,就是为了栽赃他啊!!  勋肯定是死了,都没来赴约,被玉子老公这样的黑手党搞进监狱,肯定是凶多吉少了。。。  杯具啊。。。  --------------------------  啊啊啊。。这么黑暗啊o&_&o可是如果玉子老公要杀他干嘛不直接把她杀了啊。。还弄进监狱干嘛。。  
  回复第28楼,@西瓜你个奇异果  @蘑菇小姐001  ====================================================================  我觉得最后两个人见面了...你注意听,汤唯在最后说:it spent a long time,然后有一个男声的“嗯”,然后汤唯就笑起来了......我个人认为玉子有可能是自杀,她自己或许也想到了自己的老公绝对不会放过自己.....  --------------------------  啊???有男声??!!!!我居然木有听到!!!!!!啊!!!!我要再去看一遍!!!你燃起了我的希望!!!  
  回复第32楼,@wnttete  在影院看到了没去看……是不是“晚到的秋波”?  [消息来自掌中天涯]  --------------------------  这个解释。。。强!!  
  还没看。。不过我表示很多电影我也看不懂  
  回复第32楼,@wnttete  在影院看到了没去看……是不是“晚到的秋波”?  [消息来自掌中天涯]  --------------------------  这个解释。。。强!!  
  回复第38楼,@汐诺cc  还没看。。不过我表示很多电影我也看不懂  [消息来自掌中天涯]  --------------------------  是啊。。太高深鸟。。  
  结局到底是怎样?!  
  @cencenbao  21:35:38  玉子可能是被他老公杀害的,然后栽赃给熏,当熏知道后和安娜吻别并表示永远等她,之后回到车上,中间有一段湖水的特写,熏就是在安娜睡着的这段时间选择自尽的,这样就可以永远在他们表白的地方等她,买咖啡回来的时候安娜也去了湖边,警车也停在了湖边,我猜应该是熏自尽的地方,这是我反复看片子加上参考别人得出的,大家一起讨论。  现在看起来宣传真是强大,之前的期待有点不值得  -----------------------------  唆噶~
  以前还以为自己已经算是个文艺青年了,,,结果看了晚秋以后发现越来我还是走粗犷路线的人啊!!!看的心里好憋的慌啊!!!还好当时买了爆米花。。。嚼吧嚼吧中就看完了,结局真的好过分啊,,,最不爱猜结局了
  我同学看完之后说看不懂。让我不要去看。。。。。
  @COCO小姐驾到  08:48:52  @cencenbao
14:03:40  103.50有个湖水的特写,有泛水的声音,之后接着就是安娜醒来麦咖啡找人警车来这一系列动作,自杀是我根据剧情猜测的,不过好像网上也没说到底自杀还是什么的。不过,怀疑合理性,一个鸭子会为了一个认识几天的女人自杀,这也太。。。。。。。。了吧  -------------------------------------  亲啊,就.....  -----------------------------也是哈,被逼无奈,不过即使他们在一起,或许也不一定是happy ending
  回复第41楼,@wendylcc  结局到底是怎样?!  [消息来自掌中天涯]  --------------------------  这是一个迷==。。。  
  回复第43楼,@猪妞77  以前还以为自己已经算是个文艺青年了,,,结果看了晚秋以后发现越来我还是走粗犷路线的人啊!!!看的心里好憋的慌啊!!!还好当时买了爆米花。。。嚼吧嚼吧中就看完了,结局真的好过分啊,,,最不爱猜结局了  --------------------------  我也是啊!!!!!我承认我是单细胞动物啊!!!猜不透的电影电视小说文章最讨厌了有木有!!!!!  
  回复第44楼,@披个马甲前来八  我同学看完之后说看不懂。让我不要去看。。。。。  --------------------------  我也是这么对我同学说的==哈哈哈~  
  @蘑菇小姐001
22:37:58  回复第44楼,@披个马甲前来八  我同学看完之后说看不懂。让我不要去看。。。。。  --------------------------  我也是这么对我同学说的==哈哈哈~  本帖发自天涯社区手机客户端  -----------------------------  可是这么多人看不懂我反而想去看了。。。
  我和舍友一起去看的,她靠在我肩上睡着了…  
  楼主问的也是我想问的,还有个疑惑,OX未遂那段,汤唯狠狠滴顿了一下,我以为OX成立了呢,结果推开玄彬,人家都穿着裤子那。。顿的那一下和我之前看的《挪威的森林》直子顿的特别像,那个就是表示OX成立的意思
  lz,我不会告诉你晚秋其实是一部苦情剧的。。。一个悲催地女滴,碰到了一个悲催地鸭子,然后,就悲催地没有然后了。。。
  @鱼被淹死咯  00:24:32  回复第2楼,@蘑菇小姐001  回复第1楼,@鱼被淹死咯  我也没看懂,个人觉得裕子是被他老公杀了又把罪推给了男主。最后到底男...  --------------------------  我等果然是粗犷体质,不适合文艺路线。......  -----------------------------  对啊,鄙人就是个大粗人,也是陪同学看的,结果她还想看第二遍,我已经要睡着了。。。。
  老公前几天在电脑上看的。看的津津有味。。我就在旁边闹。我真的看不懂看不懂看不懂,说的话我也一句都不懂。结局我也不懂什么都看不懂,
  回复第49楼,@披个马甲前来八  @蘑菇小姐001
22:37:58  回复第44楼,@披个马甲前来八  我同学看完之后说看不懂。让我不要去看。。。。。  --------------------------  我也是这么对我同学说的==哈哈哈~  本帖发自天涯社区手机客户端  -----------------------------  可是这么多人看不懂我反而想去看了。。。  --------------------------  ==⊙﹏⊙风萧萧兮易水寒。。你去吧壮士!!!话说~看懂个来告诉我呗哈哈~  
  回复第50楼,@我爱喔喔佳佳  我和舍友一起去看的,她靠在我肩上睡着了…  [消息来自掌中天涯]  --------------------------  我们后面有一对情侣一直在吐槽。。。  
  回复第51楼,@鼻涕孩r  楼主问的也是我想问的,还有个疑惑,OX未遂那段,汤唯狠狠滴顿了一下,我以为OX成立了呢,结果推开玄彬,人家都穿着裤子那。。顿的那一下和我之前看的《挪威的森林》直子顿的特别像,那个就是表示OX成立的意思  --------------------------  就素说!!她顿了一下我以为玄彬成功了咧!!结果。。不过她把头抵在门上那段太搞笑了!!哈哈  
  回复第52楼,@如何捍卫话语权  lz,我不会告诉你晚秋其实是一部苦情剧的。。。一个悲催地女滴,碰到了一个悲催地鸭子,然后,就悲催地没有然后了。。。  --------------------------  ⊙﹏⊙⊙﹏⊙⊙﹏⊙评论永远是亮点!!哈哈  
  回复第55楼,@玉娆  老公前几天在电脑上看的。看的津津有味。。我就在旁边闹。我真的看不懂看不懂看不懂,说的话我也一句都不懂。结局我也不懂什么都看不懂,  --------------------------  而且汤唯从头到尾除了最后就一直是一个表情啊啊呸。。好苦逼的那种啊啊呸。。。  
  回复第35楼(作者:@蘑菇小姐001 于
10:05)  回复第26楼,@COCO小姐驾到  玉子当然是玉子的老公杀的啊,她老公把包包给勋,就是为了栽赃……  ==========  直接把他杀了善后也很麻烦的啊亲…  
  @西瓜你个奇异果 28楼
10:48:56  @蘑菇小姐001  ====================================================================  我觉得最后两个人见面了...你注意听,汤唯在最后说:it spent a long time,然后有一个男声的“嗯”,然后汤唯就笑起来了......我个人认为玉子有可能是自杀,她自己或许也想到了自己的老公绝对不会放过自己.....  -----------------------------  那是汤唯的声音。。。。
请遵守言论规则,不得违反国家法律法规  之前对kmp算法虽然了解它的原理,即求出P0&&&Pi的最大相同前后缀长度k;但是问题在于如何求出这个最大前后缀长度呢?我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破,后来翻看算法导论,32章 字符串匹配虽然讲到了对前后缀计算的正确性,但是大量的推理证明不大好理解,没有与程序结合起来讲。今天我在这里讲一讲我的一些理解,希望大家多多指教,如果有不清楚的或错误的请给我留言。 
1.kmp算法的原理:
  本部分内容转自:
是计算机的基本任务之一。
举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?
许多算法可以完成这个任务,(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。
这种算法不太容易理解,网上有很多,但读起来都很费劲。直到读到的文章,我才真正理解这种算法。下面,我用自己的语言,试图写一篇比较好懂的KMP算法解释。
首先,字符串"BBC ABCDAB ABCDABCDABDE"的第一个字符与搜索词"ABCDABD"的第一个字符,进行比较。因为B与A不匹配,所以搜索词后移一位。
因为B与A不匹配,搜索词再往后移。
就这样,直到字符串有一个字符,与搜索词的第一个字符相同为止。
接着比较字符串和搜索词的下一个字符,还是相同。
直到字符串有一个字符,与搜索词对应的字符不相同为止。
这时,最自然的反应是,将搜索词整个后移一位,再从头逐个比较。这样做虽然可行,但是效率很差,因为你要把"搜索位置"移到已经比较过的位置,重比一遍。
一个基本事实是,当空格与D不匹配时,你其实知道前面六个字符是"ABCDAB"。KMP算法的想法是,设法利用这个已知信息,不要把"搜索位置"移回已经比较过的位置,继续把它向后移,这样就提高了效率。
怎么做到这一点呢?可以针对搜索词,算出一张《部分匹配表》(Partial Match Table)。这张表是如何产生的,后面再介绍,这里只要会用就可以了。
已知空格与D不匹配时,前面六个字符"ABCDAB"是匹配的。查表可知,最后一个匹配字符B对应的"部分匹配值"为2,因此按照下面的公式算出向后移动的位数:
  移动位数 = 已匹配的字符数 - 对应的部分匹配值
因为 6 - 2 等于4,所以将搜索词向后移动4位。
因为空格与C不匹配,搜索词还要继续往后移。这时,已匹配的字符数为2("AB"),对应的"部分匹配值"为0。所以,移动位数 = 2 - 0,结果为 2,于是将搜索词向后移2位。
因为空格与A不匹配,继续后移一位。
逐位比较,直到发现C与D不匹配。于是,移动位数 = 6 - 2,继续将搜索词向后移动4位。
逐位比较,直到搜索词的最后一位,发现完全匹配,于是搜索完成。如果还要继续搜索(即找出全部匹配),移动位数 = 7 - 0,再将搜索词向后移动7位,这里就不再重复了。
下面介绍《部分匹配表》是如何产生的。
首先,要了解两个概念:"前缀"和"后缀"。 "前缀"指除了最后一个字符以外,一个字符串的全部头部组合;"后缀"指除了第一个字符以外,一个字符串的全部尾部组合。
"部分匹配值"就是"前缀"和"后缀"的最长的共有元素的长度。以"ABCDABD"为例,
  - "A"的前缀和后缀都为空集,共有元素的长度为0;
  - "AB"的前缀为[A],后缀为[B],共有元素的长度为0;
  - "ABC"的前缀为[A, AB],后缀为[BC, C],共有元素的长度0;
  - "ABCD"的前缀为[A, AB, ABC],后缀为[BCD, CD, D],共有元素的长度为0;
  - "ABCDA"的前缀为[A, AB, ABC, ABCD],后缀为[BCDA, CDA, DA, A],共有元素为"A",长度为1;
  - "ABCDAB"的前缀为[A, AB, ABC, ABCD, ABCDA],后缀为[BCDAB, CDAB, DAB, AB, B],共有元素为"AB",长度为2;
  - "ABCDABD"的前缀为[A, AB, ABC, ABCD, ABCDA, ABCDAB],后缀为[BCDABD, CDABD, DABD, ABD, BD, D],共有元素的长度为0。
"部分匹配"的实质是,有时候,字符串头部和尾部会有重复。比如,"ABCDAB"之中有两个"AB",那么它的"部分匹配值"就是2("AB"的长度)。搜索词移动的时候,第一个"AB"向后移动4位(字符串长度-部分匹配值),就可以来到第二个"AB"的位置。
2.next数组的求解思路
  通过上文完全可以对kmp算法的原理有个清晰的了解,那么下一步就是编程实现了,其中最重要的就是如何根据待匹配的模版字符串求出对应每一位的最大相同前后缀的长度。我先给出我的代码:
1 void makeNext(const char P[],int next[])
int q,k;//q:模版字符串下标;k:最大前后缀长度
int m = strlen(P);//模版字符串长度
next[0] = 0;//模版字符串的第一个字符的最大前后缀长度为0
for (q = 1,k = 0; q & ++q)//for循环,从第二个字符开始,依次计算每一个字符对应的next值
while(k & 0 && P[q] != P[k])//递归的求出P[0]&&&P[q]的最大的相同的前后缀长度k
k = next[k-1];
//不理解没关系看下面的分析,这个while循环是整段代码的精髓所在,确实不好理解
if (P[q] == P[k])//如果相等,那么最大相同前后缀长度加1
&  现在我着重讲解一下while循环所做的工作:
  已知前一步计算时最大相同的前后缀长度为k(k&0),即P[0]&&&P[k-1];
  此时比较第k项P[k]与P[q],如图1所示
  如果P[K]等于P[q],那么很简单跳出while循环;
  关键!关键有木有!关键如果不等呢???那么我们应该利用已经得到的next[0]&&&next[k-1]来求P[0]&&&P[k-1]这个子串中最大相同前后缀,可能有同学要问了&&为什么要求P[0]&&&P[k-1]的最大相同前后缀呢???是啊!为什么呢?&原因在于P[k]已经和P[q]失配了,而且P[q-k] &&&&P[q-1]又与P[0] &&&P[k-1]相同,看来P[0]&&&P[k-1]这么长的子串是用不了了,那么我要找个同样也是P[0]打头、P[k-1]结尾的子串即P[0]&&&P[j-1](j==next[k-1]),看看它的下一项P[j]是否能和P[q]匹配。如图2所示
1 #include&stdio.h&
2 #include&string.h&
3 void makeNext(const char P[],int next[])
int m = strlen(P);
next[0] = 0;
for (q = 1,k = 0; q & ++q)
while(k & 0 && P[q] != P[k])
k = next[k-1];
if (P[q] == P[k])
20 int kmp(const char T[],const char P[],int next[])
n = strlen(T);
m = strlen(P);
makeNext(P,next);
for (i = 0,q = 0; i & ++i)
while(q & 0 && P[q] != T[i])
q = next[q-1];
if (P[q] == T[i])
if (q == m)
printf("Pattern occurs with shift:%d\n",(i-m+1));
42 int main()
int next[20]={0};
char T[] = "ababxbababcadfdsss";
char P[] = "abcdabd";
printf("%s\n",T);
printf("%s\n",P );
// makeNext(P,next);
kmp(T,P,next);
for (i = 0; i & strlen(P); ++i)
printf("%d ",next[i]);
printf("\n");
3.kmp的优化
待续。。。。
阅读(...) 评论()

我要回帖

更多关于 结构力学求解器3d 的文章

 

随机推荐