农夫过河算法流程图 如何通过编程来解决农夫过河问题?
如何通过编程来解决农夫过河问题?
解决方案如下:
1。农夫带着羊一个人回来了
2。农夫带着狼一个人回来了
3。农夫拿着卷心菜一个人回来了
4。农夫带着羊安全过河。这个项目现在没时间做了
这个项目是为了解决农民过河的问题:农民带着一只狼、一只羊和一些蔬菜过河。河边只有一艘船,农民一次只能带一件东西。没有人的时候,狼会吃羊,羊会吃蔬菜。这个计划将找出所有农民过河的计划。首先,我们需要代表狼、羊、蔬菜和农民的位置。四者的位置可分为两种情况:一种是在当地银行,另一种是在对岸。我们使用0和1来表示这四个元素,所以我们使用一个包含四个元素的数组。为了记录每一步,程序使用二维数组a[Max]ustep][4]并记录每一步中四个人的位置。第一步是[0],第二步是[1]。。。[0][0]表示第一步是狼在本地银行(0)或对岸(1),而[0][1]表示第一步是羊在本地银行或对岸。。。为了记录每个过河农民的状态,使用了一个数组B[Max],数组中元素的值可以分别为-1、0、1、2,表示过河农民空手,有狼、羊和蔬菜。第一步是狼、羊、蔬菜和农民都在这个例子中,所以a[0][0]到a[0][3]都是0。它应该已经初始化,但a是一个全局变量,因此它会自动初始化为0,因此此步骤保存在程序中。搜索是一个递归函数,通过不断的搜索可能下一步,找到解决方案,是一种深度优先的搜索。A[Istep][0]A[Istep][1]A[Istep][2]A[Istep][3]==4,表示A[Istep][0]到A[Istep][3]在第二个Istep中都是1,表示四个都在另一边。所以输出结果。农夫提着一篮草,手里拿着一只羊,后面跟着一只狼。狼看见前面羊的口水流了三英尺。农夫把羊拴在草架上,把篮子放在水上。农夫把篮子拉到他面前,把羊放在草地上。草漂浮在水面上。这样,羊就可以不费吹灰之力地游泳了。狼紧紧地追着他。在想了想如何把狼扔掉后,农夫突然蹲下来放开手,他潜入水中,从水中抓住狼的爪子,把它拉下水。狼盯着水上的羊。它突然沉了下去。农夫在水里屏住呼吸,把狼拖死了。狼很快就淹死了。
农夫从水里出来,以为他的羊已经走了?但是这只聪明的羊正在水里寻找它的主人。
危险消除后,农夫又把死狼拉上来,准备回家好好吃一顿。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。