猴子摘香蕉实验报告记录(含代码)
猴子和香蕉的实验
猴子和香蕉的实验:猜测道德、阶级、信仰、宗教的起源-道德的起源-把五只猴子关在一个笼子里,上头有一串香蕉实验人员装了一个自动装置一旦侦测到有猴子要去拿香蕉,马上就会有水喷向笼子而这五只猴子都会一身湿首先有只猴子想去拿香蕉,当然,结果就是每只猴子都淋湿了之后每只猴子在几次的尝试后,发现莫不如此於是猴子们达到一个共识:不要去拿香蕉,以避免被水喷到后来实验人员把其中的一只猴子释放,换进去一只新猴子A这只猴子A看到香蕉,马上想要去拿结果,被其他四只猴子海K了一顿因为其他四只猴子认为猴子A会害他们被水淋到,所以制止他去拿香蕉A尝试了几次,虽被打的满头包,依然没有拿到香蕉当然,这五只猴子就没有被水喷到后来实验人员再把一只旧猴子释放,换上另外一只新猴子B这猴子B看到香蕉,也是迫不及待要去拿当然,一如刚才所发生的情形,其他四只猴子海K了B一顿特别的是,那只A猴子打的特别用力(这叫老兵欺负新兵,或是媳妇熬成婆 ^O^)B猴子试了几次总是被打的很惨,只好作罢后来慢慢的一只一只的,所有的旧猴子都换成新猴子了,大家都不敢去动那香蕉但是他们都不知道为什麽,只知道去动香蕉会被猴扁这就是道德的起源-阶级的起源-实验人员继续他们的实验,不过这一次他们改变了喷水装置一旦侦测到有猴子要去拿香蕉,马上就会有水喷向拿香蕉的猴子,而不是全体然后实验人员又把其中的一只猴子释放,换进去一只新猴子C不同以往的是猴子C特别的孔武有力当然猴子C看到香蕉,也马上想要去拿一如以前所发生的情形,其他四只猴子也想海K猴子C一顿不过他们错误估计了C的实力,所以结果是反被C海K了一顿于是猴子C拿到了香蕉,当然也被淋了个透湿C一边打着喷嚏一边吃着香蕉,美味但是也美中不足A、B、D、E没有香蕉吃却也比较快乐,毕竟没有被淋到嘛后来C发现只有拿香蕉的那个才会被淋到,他就要最弱小的A替他去拿A不想被K,只好每天拿香蕉然后被水淋B、D、E越发的快乐了起来,这就叫比上不足,比下有余嘛于是五只猴子有了三个阶级这下子阶级也随着道德的起源了-道德的沦丧-天变热了,笼子里的猴子们想冲凉却找不到地方。
猴子与香蕉:心理学实验中管理之道
猴子与香蕉:心理学实验中管理之道2009/5/19/08:15 来源:价值中国作者:于同辉心理学里有一个非常经典的试验:猴子和香蕉。
把五只猴子关在一个笼子里,笼子顶上挂一串香蕉,在笼子顶上同时安装了一个喷头,只要有猴子试图摘香蕉,喷头就会喷出水来。
因为猴子都喜欢吃香蕉,因此几乎所有的猴子都试图去摘香蕉,但是无一例外都会被喷头喷出的水淋得浑身湿透,结果过了一段时间后,似乎所有的猴子都明白了这个“道理”——只要试图摘香蕉就会被水淋,于是没有任何一只猴子去摘挂在笼子顶上的香蕉,尽管它们都非常喜欢吃。
后来,试验人员用一只新猴子(简称A猴子)换出原来的一只猴子,这只A猴子看到笼子顶上的香蕉,也和原来的猴子刚开始一样试图去摘,这时,所有原来的猴子都不约而同地冲上去把这只A猴子暴打一顿,以后只要这只A猴子想去摘,就会遭到其它猴子的暴打,如此经过一段时间,A猴子也和原来的猴子一样放弃了摘香蕉的企图。
试验人员又用另一只新猴子(简称B猴子)换出另一只原来的猴子,发生的情况与A猴子刚进来时一样,只要B猴子试图摘香蕉就会遭到暴打,而且A猴子打的最重。
就这样,经过很长一段时间后,原来的猴子都被换出去了,笼子里的猴子已经更换了几个轮回,顶上的喷头也已经早就取消了,但只要有新进来的猴子试图去摘香蕉都会遭到其它猴子的暴打,至于为什么会遭到暴打,没有一个猴子知道原因,但每个猴子都很自觉地养成了这样的习惯。
这个经典的实验应用到组织管理上至少可以引伸出三层意思:首先,组织实施的任何变革,开始时都是少数人试图改变多数人,阻力一般很大,当多数人认可和接受变革后,就变成了多数人去改变少数人,阻力要小很多。
因此,推行任何变革,都需要管理者的坚持。
其次,众所周知,猴子喜欢香蕉几乎是与生俱来的习惯,而上述实验中的实验者试图改变猴子吃香蕉的习惯,其难度可想而知,但实验者很聪明,他开始只改变五只猴子,当这五只猴子被改变后,又让这五只猴子去改变越来越多的猴子,那么这最初的五只猴子就像是五粒种子。
猴子摘香蕉实验报告
实验1:猴子摘香蕉问题的VC编程实现一、实验目的利用一阶谓词逻辑求解猴子摘香蕉问题并通过编程来实现二、编程环境本文主要编译环境是Windows 10 Visual Studio 2015 在Ubuntu 12.0 用gcc编译来演示问题的另外几种状态的解法三、问题描述房内有一个猴子,一个箱子,天花板上挂了一串香蕉,其位置如图所示,猴子为了拿到香蕉,它必须把箱子搬到香蕉下面,然后再爬到箱子上。
请定义必要的谓词,列出问题的初始化状态(即下图所示状态),目标状态(猴子拿到了香蕉,站在箱子上,箱子位于位置b)。
四、解决方案1.定义描述环境状态的谓词。
AT(x,y):x在y处,个体域:xϵ{monkey, box,banana },yϵ{a,b,c};HAND(s):猴子手中拿着s,个体域:sϵ{box,banana};ONBOX(monkey):猴子在箱子上;2.使用谓词、连结词、量词来表示环境状态。
问题的初始状态可表示为:S o:A T(monkey,a)˄ ~HAND(s)˄AT(box,c) ˄ ~ONBOX(monkey) ˄AT(banana,b)要达到的目标状态为:S g:AT(box,b) ˄ ONBOX(monkey) ˄ HAND(banana)˄AT(monkey,b) ˄AT(banana,b)3.从初始状态到目标状态的转化, 猴子需要完成一系列操作, 定义操作类谓词表示其动作。
go(m,n):猴子从m走到n处,个体域:m,nϵ{a,b,c};movebox(m,n):猴子把箱子从m 处移动到n 处,个体域:m,n ϵ{a,b,c};onbox(m):猴子在m 处爬上箱子,个体域:m ϵ{a,b,c};catch(banana):猴子摘到香蕉;这3个操作也可分别用条件和动作来表示。
条件直接用谓词公式表示,是为完成相应操作所必须具备的条件;当条件中的事实使其均为真时,则可激活操作规则,于是可执行该规则中的动作部分。
最新猴子和香蕉的实验
最新猴子和香蕉的实验一天,在大家冲凉时,饱受折磨的HERO闻到了香蕉的清香,生物本能使它在别的猴子心有旁鹜时将香蕉吃了。
而且此后没有了新的香蕉来填补空缺。
猴子们陷入了另一个尴尬境地:没有冲凉的水,也没有香蕉,只有HERO。
于是,另一个规则形成了。
猴子在烦躁的时候会痛打HERO出气,HERO不得反抗。
当笼子里的旧猴子被新猴子换掉时,新猴子会在最快的时间内学会殴打HERO。
终于有一天,老天有眼,历尽沧桑的HERO被另一只猴子代替了。
猴子们失去了发泄的对象,只能任意选取一个目标进行攻击。
从此以后,笼子里的猴子们不吃不喝不冲凉,唯一的举动就是打架。
这就是道德的沦丧。
-道德的重建-实验人员对猴子们的争斗不休感到不安。
为了重建道德秩序,他们决定继续供应香蕉。
一天,正在混战的猴子们发现头顶多了一串香蕉,它们其中的一个A不顾身上的剧痛,把香蕉摘了下来。
于是久违的甘露出现了,未曾尝过甜头的猴子们先是茫然失措,继而争先恐后的加入冲凉的行列。
香蕉反而被遗忘了。
当猴子B、C、D、E发现A在享受淋浴的同时还吃着美味的香蕉,嫉妒心使它们暂时团结起来,共同K了A一顿,将A吃剩的香蕉夺过来,但是,此刻的香蕉成了匹夫怀里的宝玉,得到它的猴子虽然可以享受美味,但付出的代价也是巨大的。
实验人员不断放入香蕉,却发现战斗比以前更激烈了。
分析清楚原因后,他们用木头做了一个假香蕉扔进了笼子。
此时猴子们已经学聪明了,它们知道触摸香蕉可以享淋浴,而试图独占香蕉则会遭到痛扁。
于是,一个新的现象出现了,当猴子们有冲凉的需要时,会有一只猴子将香蕉拿起来,而当它发现有遭到攻击的可能时,它会马上放下香蕉逃到一边去。
这样,猴子们都能冲凉,但是又不至于再象以前那样N败俱伤。
没有猴子发现那个香蕉是假的。
-信仰的起源-五只猴子A、B、C、D、E三个阶级快乐地生活了很久他们精确的给出了三个阶级的定义,即吃香阶级、拿香阶级和干看着阶级可惜猴子A由于长期的水中作业无可避免地引发了它肺部功能的衰竭一天他在例行的拿香蕉作业中跌倒了就再也没有爬起来于是实验人员又送进了一只同样孔武有力的猴F当然他还是对屋顶的香蕉很有兴趣不幸的是他最终以微弱的劣势被以C为首的群猴再次海K第二天,又到了拿香蕉的时候猴子C很无所谓,反正他还要吃香蕉,反正他不会被水淋到真正恐慌的是B、D、E三猴F是那么的健壮,他们这些媳妇是熬不成婆了他们将面临一个艰难的抉择,谁该去步A的后尘?猴子B、D、E展开了激烈的争论,讨论谁最应该做下一个拿香阶级猴子F很奇怪也很好奇,什么叫“拿香阶级”呢?猴子B、D、E解释道:所谓“拿香阶级”就是猴子界勇敢者的阶级需具备一不怕苦二不怕死的大无畏精神方能得此殊荣猴子F闻听不禁有些神往,有些跃跃欲试当然他最终达到了目的,作了唯一的拿香阶级再后来,B、D、E三猴陆续被换出局,换来的猴子个个健壮如C他们继续大大出手,不过目标不是香蕉,而是那个唯一的拿香阶级于是信仰也出现了。
python猴子摘香蕉心得
python猴子摘香蕉心得在这个世界上,最有趣的动物之一就是猴子了。
它们聪明、机灵,有时甚至比人类更具创造力。
而今天,我要和大家分享的是一次和猴子一起摘香蕉的经历。
那天,我来到了一座美丽的热带雨林,在那里我遇到了一群顽皮的猴子。
它们跳来跳去,互相追逐着,仿佛在玩耍一般。
我被它们的活泼和机智所吸引,决定近距离观察它们的行为。
正当我静静地观察时,我注意到一只猴子离开了群体,身手敏捷地爬上了一棵高大的香蕉树。
我惊讶地发现,树上挂满了诱人的香蕉,而这只猴子似乎对此毫不在意。
它先是慢慢地靠近香蕉,仔细观察着。
然后,它突然从身上拿出一根长长的棍子,用它轻轻地敲打着香蕉。
我想,它是想通过这种方式来摘下香蕉吧。
然而,很不幸的是,那根棍子太短了,根本够不到香蕉。
猴子看起来有些沮丧,但它并没有放弃。
它继续寻找着其他的方法。
接着,猴子眼中闪过一丝灵光,它开始四处搜寻。
终于,在一旁的灌木丛中,它找到了一根更长的棍子。
它高兴地拿起棍子,再次靠近香蕉树。
这次,猴子的计划成功了。
它巧妙地使用棍子,将香蕉一根一根地摘下来。
每当一根香蕉落地,它都会开心地叫着,仿佛在向全世界宣告它的胜利。
这个过程让我深深地感受到了猴子的智慧和努力。
它们并没有因为遇到困难而放弃,而是不断地寻找解决问题的办法。
它们的聪明才智和创造力令人敬佩。
通过这次与猴子一起摘香蕉的经历,我深刻地认识到了努力和智慧的重要性。
无论在什么样的环境下,只要我们保持积极的态度,不断地寻找解决问题的方法,就一定能够战胜困难,实现自己的目标。
香蕉树上的香蕉象征着人生中的目标和梦想。
只有像猴子一样,不畏艰难,不怕失败,我们才能够摘取到属于自己的果实。
所以,让我们像猴子一样,勇敢地去追逐我们的梦想吧!。
猴子摘香蕉问题acb箱子
实例: 猴子摘香蕉问题
箱子
a
c
b
•
目 标 状 态
箱子
aLeabharlann cb实例: 猴子摘香蕉问题
问题状态的表示:四元组(W,x,Y,z) W:猴子的水平位置。W=a,b,c。 x:当猴子在箱子顶上时取x=1;否则取
x=0。 Y:箱子的水平位置。Y=a,b,c。 z:当猴子摘到香蕉时取z=1;否则取z=0。
初始状态:(a,0,b,0) 目标状态:(c,1,c,1)
算符集合:
goto(U):猴子走到水平位置U。
(W,0,Y,z) goto(U) (U,0,Y,z)
pushbox(V):猴子把箱子推到水平位置V。
(W,0,W,z) pushbox(V) (V,0,V,z)
climbbox:猴子爬上箱顶。
思考题
设有3个传教士和3个野人来到河边, 打算乘一只船从右岸渡到左岸去。该船的 负载能力为两人。在任何时候,如果野人 人数超过传教士人数,那么野人就会把传 教士吃掉。他们怎样才能用这条船安全地 把所有人都渡过河去?
(W,0,W,z) climbbox (W,1,W,z)
grasp:猴子摘到香蕉。
(c,1,c,0) grasp (c,1,c,1)
算符的适用性条件:强加于操作的实用性条件。
如:应用算符pushbox(V)时,要求猴子与箱子必须 在同一位置。
猴子摘香蕉问题的状态空间图如下图所示。 操作序列:{goto(b),pushbox(c),climbbox,grasp}
猴子与香蕉的实验
然后,再放一只新猴子进笼子内 新猴子进到笼子后,见到香蕉,本能去拿 其它猴子马上把新猴子按住,一通爆打 几次反复下来,新猴子尽管不明究理,但很快也明白了香 蕉不能动,一动就会触犯众怒 这样,猴子们“不能动香蕉”的默契建立起来了 ---------
“不能动香蕉”的文化形成了
在冬天把一群猴子关在一个笼里笼子上方安装一个洒水的花洒花洒的开关拉手绑着一个香蕉刚进笼的猴子见到香蕉本能会去拿香蕉结果拉动开关花洒撒出冷水把笼里的猴子浇大冬天身体被淋湿的滋味不好受一来二去猴子们明白这个香蕉不能动一动就会受到浇冷水的惩罚即使偶尔还有个别猴子贼心不死想去拿香蕉别的猴子也会去制止它的行为免得大家被个别猴子的行为遭罪文化的建立
文化的建立: 文化的建立:猴子与香蕉的实验
管理学上做过一个实验: 管理学上做过一个实验
在冬天把一群猴子关在一个笼里 笼子上方安装一个洒水的花洒 花洒的开关拉手绑着一个香蕉 刚进笼的猴子见到香蕉,本能会去拿香蕉 结果拉动开关,花洒撒出冷水,把笼里的猴子浇 湿 大冬天身体被淋湿的滋味不好受,一来二去,猴 子们明白这个香蕉不能动,一动就会受到浇冷水的 惩罚 即使偶尔还有个别猴子“贼心不死”想去拿香蕉, 别的猴子也会去制止它的行为,免得大家被个别猴 子的行为遭罪
猴子和香蕉的故事(关于道德、阶级、信仰迷信的实验)
猴子和香蕉的故事(关于道德、阶级、信仰&迷信的实验)-道德的起源-把五只猴子关在一个笼子里,上头有一串香蕉实验人员装了一个自动装置一旦侦测到有猴子要去拿香蕉,马上就会有水喷向笼子而这五只猴子都会一身湿首先有只猴子想去拿香蕉,当然,结果就是每只猴子都淋湿了之後每只猴子在几次的尝试後,发现莫不如此於是猴子们达到一个共识:不要去拿香蕉,以避免被水喷到後来实验人员把其中的一只猴子释放,换进去一只新猴子A 这只猴子A看到香蕉,马上想要去拿结果,被其他四只猴子海K了一顿因为其他四只猴子认为猴子A会害他们被水淋到,所以制止他去拿香蕉 A尝试了几次,虽被打的满头包,依然没有拿到香蕉当然,这五只猴子就没有被水喷到後来实验人员再把一只旧猴子释放,换上另外一只新猴子B这猴子B看到香蕉,也是迫不及待要去拿当然,一如刚才所发生的情形,其他四只猴子海K了B一顿特别的是,那只A猴子打的特别用力(这叫老兵欺负新兵,或是媳妇熬成婆^O^)B猴子试了几次总是被打的很惨,只好作罢後来慢慢的一只一只的,所有的旧猴子都换成新猴子了,大家都不敢去动那香蕉但是他们都不知道为什麽,只知道去动香蕉会被猴扁这就是道德的起源-迷信的起源-迷信的起源后来A终于被好心的实验人员拉出了苦海。
新来了猴子F C觉得有必要维护自己的阶级地位,B、D、E则生怕自己顶了A的缸…… 在各种复杂心情的作用下,B、D、E在C的带领下爆扁了F一顿,然后强令F做拿香蕉阶级。
F开始不乐意,后来慢慢在B等的劝说下等“待多年的媳妇熬成婆”这一宿命。
慢慢的老资格的B、D、E猴子渐渐被淘汰,C发现自己在体力上不再占有优势,很难再通过武力让这一游戏规则继续下去,觉得十分苦恼。
猴子实验
有6只猴子被放入同一个笼子,并用链条将香蕉悬挂在笼子顶部,链条另一端与沐浴器喷头相连,当一只猴子伸手拉香蕉时,所有猴子都会被沐浴器喷出的冷水浇湿(猴子和猫一样,不喜欢水)。
用不了多久,6只猴子就都知道香蕉是不能碰的。
接着从6只猴子里取出1只,并放入1只新的猴子。
毫无疑问,新来的猴子看见香蕉,心想一定到了天堂。
但当它往上爬时,其他5只猴子会制止它接触香蕉。
不久,这只新来的猴子也知道香蕉是个禁忌,必须服从另外5只猴子的命令。
然后新猴子不断被放入,每放入1只新猴子的同时,都取出1只原来的猴子。
每次替换猴子的时候,这样的教训都会重新上演一次。
很快,最初在笼子里的6只猴子全部被替换出,而香蕉仍然完好无损——虽然后来的猴子从未被冷水淋湿,但它们从不询问不能碰香蕉的原因,他们只管服从。
“猴子实验”是西点军校实验室中进行的一项经典实验,确切地说明了士兵们如何学会服从——不加思索地把一些已有体会的传统教给他人,并且让他人绝对不能违反,这就是服从。
体育游戏 小猴摘香蕉
体育活动:小猴摘香蕉班级:中一班执教:李艳华时间:20110105活动目标:1、让幼儿学会屈膝蹬地跳起的动作。
2、培养幼儿不怕困难的精神。
活动准备:1、布置场地,接好长绳,系上若干“香蕉”(离幼儿举直手臂时的指尖约20厘米)。
2、初步掌握猴操。
活动过程:1、开始部分:(1)、引入:——师:今天老师扮演猴妈妈,朋友扮小猴,现在让我们一起来锻炼身体吧。
(2)、幼儿在教师的带领下,做猴操(自编):上肢运动、下肢运动、体侧运动、体转运动、腹背运动、跳跃运动、放松运动。
2、基本部分:(1)、引入:——师:做完操,你们觉得肚子饿了吗?咦… 有没有闻到一种香味,哪是什么的香味?(香蕉)要不我们一起去摘香蕉好吗?(2)、讲解、示范:屈膝、前脚掌瞪地向上跳起并伸手摘香蕉。
(3)、请幼儿原地徒手练习3——4次。
(4)、以游戏“摘香蕉”的形式巩固练习纵跳触物的动作,对个别能力弱的幼儿要进行个别指导。
(5)、比赛谁摘的香蕉多。
3、结束部分(1)、教师评价;表扬认真学习、不怕困难的幼儿。
(2)、幼儿随音乐自由跳舞或模拟各种猴的动作(表现出丰收的喜悦)活动延伸:大家一起品尝香蕉。
体育游戏:小猴摘桃[活动目标]1、练习幼儿手膝爬。
2、能动作熟练地钻过山洞,跳起摘桃,培养幼儿动作的协调性和弹跳力。
3、指导幼儿遵守游戏规则,培养幼儿的规则意识。
[活动准备]垫子、扯好的横线、横线上粘好的教具桃子。
[活动过程]玩法:幼儿扮演小猴,分成人数相等的四队,分别站在起跑线上。
教师讲解游戏的玩法,然后示范动作,强调游戏规则。
游戏开始,教师发出信号,各队第一个幼儿向前跑去,幼儿两膝着地爬行,钻过山洞,跑到横线下,双脚跳起触摸桃子,摸到桃子的算数,然后转身跑回,拍一下下一个小朋友的手,站到对尾。
依次进行,最后以先跑完自己组人数的队赢。
规则:1、必须用手膝着地向前爬行。
2、每个幼儿必须摸打桃子才可以跑回。
3、接力的幼儿被拍到手后才能开始跑。
教后记:本活动主要是让幼儿练习两手两膝着地向前爬行,幼儿对这样的活动非常感兴趣,幼儿分组比赛,由于没有桃子,可用积木充当桃子,将积木放在稍微高的地方,拿积木的时候,幼儿跳一下,培养幼儿的弹跳力,幼儿非常兴奋地进行比赛,旁边的小朋友都为他们呐喊助威,气氛活跃而成功。
猴子香蕉问题实验报告
一、实验背景猴子香蕉问题是一个经典的心理学实验,由美国心理学家阿尔伯特·班杜拉(Albert Bandura)在1961年设计。
该实验旨在研究儿童的社会学习理论,即通过观察和模仿他人的行为来学习新技能或态度。
本实验报告将详细描述实验过程、结果分析以及结论。
二、实验目的1. 验证儿童是否会通过观察成人的行为来学习解决问题的方式。
2. 探讨儿童在观察学习过程中的认知过程和情感反应。
3. 分析儿童在实验中的行为差异及其原因。
三、实验方法1. 实验对象选取30名年龄在3-5岁之间的儿童作为实验对象,男女比例均衡。
2. 实验材料- 一根香蕉- 一个箱子- 一根长棍子- 一根短棍子- 一个观察室(隔离观察儿童行为)3. 实验步骤(1)将儿童随机分为三组,每组10人。
(2)实验前,向儿童说明实验规则:香蕉放在箱子里面,箱子上有小洞,可以用棍子将香蕉弄出来。
(3)向儿童展示如何使用棍子将香蕉弄出来,并让儿童模仿。
(4)将儿童分为两组进行实验:一组在观察室观察成人如何解决问题,另一组直接参与实验。
(5)记录两组儿童在实验中的行为表现,包括解决问题的时间、次数、情绪反应等。
四、实验结果1. 观察组- 观察组儿童在观察成人解决问题后,能够较快地模仿成人行为,解决问题的时间明显缩短。
- 观察组儿童在实验过程中表现出较高的情绪稳定性,对实验充满兴趣。
2. 参与组- 参与组儿童在实验过程中需要花费较长时间才能学会解决问题,且情绪波动较大。
- 参与组儿童在实验结束后,对实验表现出一定的厌倦情绪。
五、结果分析1. 观察学习在儿童解决问题过程中起到了重要作用。
儿童通过观察成人行为,学习到了解决问题的方法,从而提高了自己的问题解决能力。
2. 情绪因素在儿童观察学习过程中具有重要影响。
观察组儿童在实验过程中情绪稳定,有利于他们更好地观察和学习成人行为。
3. 参与组儿童在实验过程中需要亲自尝试解决问题,这可能导致他们在学习过程中遇到困难,从而影响学习效果。
猴子摘香蕉效应 Microsoft Word 文档
猴子摘香蕉效应驯兽师挑选聪明的猴子是把一群猴子关在一个屋子里。
他把香蕉挂的高高的,屋里有桌子,椅子,还有长竹竿等。
猴子看到香蕉,就想吃香蕉,就需要想办法。
猴子看到又不容易摘到,让他对香蕉充满期待又愿意去尝试,通过已有的工具,聪明的猴子就能吃到香蕉。
能吃到香蕉的猴子就是聪明的猴子。
在训练学生的思维过程中,我坚持猴子摘香蕉原则,要给与学生奖励使他们看得到思考的好处,担思考的内容是没有模式的,总是高出学过的知识一节,需要你运用已有的知识经验去解决这个面临的难题,长此以往既锻炼了思维,又能找到数学学习的乐趣。
一年级学了100以内的加减法出了样的一道题:3根小棒可以拼成一个三角形,多少根小棒可以拼成两个三角形,27根小棒可以拼成几个像这样的三角形?学生1:我先画27根小棒,再3根3根圈起来,可以圈9次,就是9个三角形.(二年级包含除,分一分用的方法.)学生2:我用27-3-3一直减,减了9次就是0了,就是9个三角形(这个孩子数感很好,而且也能说清楚为什么要减3,就是用去三根总数就少了3根,所以要减去3.)学生3:我是扳手指头,一个三角形要3根,就扳一根一根就一个三角形,两个要6根,三个要9根,9加3等于12根,就4个三角形(有的学生计算有点混提醒他注意计算和手配合.)9个就是是27根.还有一个学生说,我就知道是9个三角形就要27根我想一下就知道答案.看他那么神气,我就问那8个要多少根,那个虾子反应还真快,稍想了以下就说24根.学生4:我是画的三角形1,2,3,4,5,6,7,8,9,------一直画到27就行了.学生5:我还是画的,依次再数3,6,9,------27.学生6:3+3+3+3+3+3+3+3+3,方法没有优劣,只要是学生自己独立思考的方法,对个体来说就是好方法,听了的就忘了,自己思考了的就记住了,就是其他同学的方法他也更愿意去关注也愿意去比较。
例如刚学了乘法的口诀,我出了这样的思考题:一支钢笔8元,买16支笔应该多少元?学生1:我先算十支是10个8是80元,再买6支六八四十八要48元再把它们合起来就是128元。
人工智能猴子香蕉问题
1.箱子在香蕉的左边(Y<c)
2.箱子在香蕉的右边(Y>c)
*/
int i;
if(Y==c){
printf("\n香蕉就在箱子的正上方......\n");
}
else{
printf("\n猴子把箱子(箱子的水平位置Y(%d))推到香蕉正下方的地板位置
int c; /*c-是香蕉正下方的地板位置*/
int Y; /*Y—箱子的水平位置*/
int乙/*z—当猴子摘到香蕉时取z=1;否则取z=0*/
int ascll=25;
void Goto(){
/*(W,0,Y,z)>(U,0,Y,z)*/
/*猴子从水平位置W走到箱子的水平位置丫
1.猴子在箱子的左边(W<Y)
if(i!=Y) prin tf(" %c\n",ascll); prin tf("State(%d,%d,%d,%d)\n",i,x,Y,z); }
}
W=c;
}
void ClimbBox(){
/*猴子爬上箱顶*/
printf("\n猴子爬上箱顶......\n"); printf("\n W x Y z\n");
状态(U,0,b,0)。现在有3个适用的操作,即goto(U),pushbox(V)和climbbox(若U=b)。其中,c是香蕉正下方的地板位置,该初始状态变换为目标状 态的操作序列为:{goto(b),pushbox(c),climbbox,grasp}
应当说明的是,在这种情况下,算符(操作)的适用性及作用均由产生式规则表 示。例如,对于规则(2),只有当算符Pushbox(V)的先决条件,即猴子与箱子 在同一位置上而且猴子不在箱顶上这些条件得到满足时,算符pushbox(V)才是适
人工智能实验1-2
试验1:用谓词表示猴子摘香蕉问题实验内容:利用一阶谓词逻辑求解猴子摘香蕉问题:房内有一个猴子,一个箱子,天花板上挂了一串香蕉,其位置如图所示,猴子为了拿到香蕉,它必须把箱子搬到香蕉下面,然后再爬到箱子上。
请定义必要的谓词,列出问题的初始化状态(即下图所示状态),目标状态(猴子拿到了香蕉,站在箱子上,箱子位于位置b)。
写出所用谓词的定义,并给出每个谓词的功能及变量的个体域,然后编程实现。
实验目的:通过此实验加深对谓词逻辑和谓词知识表示的理解。
实验报告要求:所撰写的实验报告必须包含以下内容:1. 所用谓词的定义以及每个谓词的功能及变量的个体域;2. 实验结果;(可截图)3. 提供全部源程序及软件的可执行程序。
(打印)实验2:八数码问题实验内容:八数码问题:在3×3的方格棋盘上,摆放着1到8这八个数码,有1个方格是空的,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态到目标状态。
2 5 4 1 2 33 7 8 41 8 6 7 6 5(a) 初始状态(b) 目标状态请任选一种盲目搜索算法(深度优先搜索或宽度优先搜索)或任选一种启发式搜索方法(A 算法或A* 算法)编程求解八数码问题(初始状态任选),并对实验结果进行分析,得出合理的结论。
实验目的:1. 熟悉人工智能系统中的问题求解过程;2. 熟悉状态空间的盲目搜索和启发式搜索算法的应用;3. 熟悉对八数码问题的建模、求解及编程语言的应用。
实验报告要求所撰写的实验报告必须包含以下内容:1. 算法基本原理和流程框图;2. 基本数据结构分析和实现;3. 编写程序的各个子模块,按模块编写文档,含每个模块的建立时间、功能、输入输出参数意义和与其它模块联系等;4. 程序运行结果,含使用的搜索算法及搜索路径等;5. 实验结果分析;6. 结论;7. 提供全部源程序及软件的可执行程序。
2。
猴子摘香蕉实验报告
实验1:猴子摘香蕉问题的V C 编程实现一、实验目的利用一阶谓词逻辑求解猴子摘香蕉问题并通过编程来实现二、编程环境本文主要编译环境是Windows10VisualStudio2015在Ubuntu12.0用gcc 编译来演示问题的另外几种状态的解法三、问题描述房内有一个猴子,一个箱子,天花板上挂了一串香蕉,其位置如图所示,猴子为了拿到香蕉,它必须把箱子搬到香蕉下面,然后再爬到箱子上。
请定义必要的谓词,列出问题的初始化状态(即下图所示状态),目标状态(猴子拿到了香蕉,站在箱子上,箱子位于位置b )。
四、解决方案1. 定义描述环境状态的谓词。
AT(x,y):x 在y 处,个体域:x?{monkey,box,banana},y?{a,b,c};HAND(s):猴子手中拿着s ,个体域:s?{box,banana};ONBOX(monkey):猴子在箱子上;2. 使用谓词、连结词、量词来表示环境状态。
问题的初始状态可表示为:S o :AT(monkey,a)?~HAND(s)?AT(box,c)?~ONBOX(monkey)?AT(banana,b)要达到的目标状态为:S g :AT(box,b)?ONBOX(monkey)?HAND(banana)?AT(monkey,b)?AT(banana,b)3. 从初始状态到目标状态的转化,猴子需要完成一系列操作,定义操作类谓词表示其动作。
go(m,n):猴子从m 走到n 处,个体域:m,n?{a,b,c};movebox(m,n):猴子把箱子从m 处移动到n 处,个体域:m,n?{a,b,c};onbox(m):猴子在m 处爬上箱子,个体域:m?{a,b,c};catch(banana):猴子摘到香蕉;这3个操作也可分别用条件和动作来表示。
条件直接用谓词公式表示,是为完成相应操作所必须具备的条件;当条件中的事实使其均为真时,则可激活操作规则,于是可执行该规则中的动作部分。
80年代课本猴子摘香蕉
80年代课本猴子摘香蕉
一只猴子被关在一个笼子里,笼子上面有一串香蕉。
猴子尝试去拿香蕉,但没想到实验人员安置了一个自动装置,只要猴子去碰香蕉,笼子里就会喷出冷水。
于是猴子被淋了一身。
猴子反复尝试几次后终于明白了一个道理:那串香蕉是不可以拿的,否则就会被喷冷水惩罚。
这一切,都被隔壁笼子里的另一只猴子看在眼里。
研究人员把第二只猴子放进笼子之后,这只猴子一次也没有去拿香蕉,因为它也知道:这串香蕉不可以拿。
研究人员从别处弄来第三只猴。
这只不明真相的猴子,进入笼子后,马上想去拿香蕉,结果被前两只猴挡住一顿暴揍。
反复几次之后,第三只猴明白了:拿香蕉要被揍。
后来每放入一只猴,只要去拿香蕉就要被其他猴一顿暴揍。
后来,研究人员将第一只猴和第二只猴取出了笼子。
但事情并没有什么变化,后来放入的新猴子,只要取香蕉就要被暴揍,尽管没有一只猴子知道为什么这么做。
但它们一致同意:香蕉是相当危险的东西,为了保证自己的安全,我们要远离香蕉。
人工智能实验报告大全:猴子摘香蕉问题的VC编程实现等八次
⼈⼯智能实验报告⼤全:猴⼦摘⾹蕉问题的VC编程实现等⼋次⼈⼯智能课内实验报告(8次)学院:⾃动化学院班级:智能1501姓名:刘少鹏(34)学号:06153034⽬录课内实验1:猴⼦摘⾹蕉问题的VC编程实现 (1)课内实验2:编程实现简单动物识别系统的知识表⽰ (5)课内实验3:盲⽬搜索求解8数码问题 (18)课内实验4:回溯算法求解四皇后问题 (33)课内实验5:编程实现⼀字棋游戏 (37)课内实验6:字句集消解实验 (46)课内实验7:简单动物识别系统的产⽣式推理 (66)课内实验8:编程实现D-S证据推理算法 (78)⼈⼯智能课内实验报告实验1:猴⼦摘⾹蕉问题的VC编程实现学院:⾃动化学院班级:智能1501姓名:学号:⽇期:2017-3-810:15-12:00实验1:猴⼦摘⾹蕉问题的VC编程实现⼀、实验⽬的(1)熟悉谓词逻辑表⽰法;(2)掌握⼈⼯智能谓词逻辑中的经典例⼦——猴⼦摘⾹蕉问题的编程实现。
⼆、编程环境VC语⾔三、问题描述房⼦⾥有⼀只猴⼦(即机器⼈),位于a处。
在c处上⽅的天花板上有⼀串⾹蕉,猴⼦想吃,但摘不到。
房间的b处还有⼀个箱⼦,如果猴⼦站到箱⼦上,就可以摸着天花板。
如图1所⽰,对于上述问题,可以通过谓词逻辑表⽰法来描述知识。
要求通过VC语⾔编程实现猴⼦摘⾹蕉问题的求解过程。
图1 猴⼦摘⾹蕉问题四、源代码#includeunsignedint i;void Monkey_Go_Box(unsignedchar x, unsignedchar y){printf("Step %d:monkey从%c⾛到%c\n", ++i, x, y);//x表⽰猴⼦的位置,y为箱⼦的位置}void Monkey_Move_Box(char x, char y){printf("Step %d:monkey把箱⼦从%c运到%c\n", ++i, x, y);//x表⽰箱⼦的位置,y为⾹蕉的位置}void Monkey_On_Box(){printf("Step %d:monkey爬上箱⼦\n", ++i);}void Monkey_Get_Banana(){printf("Step %d:monkey摘到⾹蕉\n", ++i);}void main(){unsignedchar Monkey, Box, Banana;printf("********智能1501班**********\n");printf("********06153034************\n");printf("********刘少鹏**************\n");printf("请⽤a b c来表⽰猴⼦箱⼦⾹蕉的位置\n");printf("Monkey\tbox\tbanana\n");scanf("%c", &Monkey);getchar();printf("\t");scanf("%c", &Box);getchar();printf("\t\t");scanf("%c", &Banana);getchar();printf("\n操作步骤如下\n");if (Monkey != Box){Monkey_Go_Box(Monkey, Box);}if (Box != Banana){Monkey_Move_Box(Box, Banana);}Monkey_On_Box();Monkey_Get_Banana();printf("\n");getchar();}五、实验结果相关截图六、⼼得体会通过本次实验,我初步了学会了使⽤VC的新建⼯程,并且进⾏简单的程序编写。
体育游戏小猴摘香蕉
体育活动:小猴摘香蕉班级:中一班执教:李艳华时间:活动目标:1、让幼儿学会屈膝蹬地跳起的动作。
2、培养幼儿不怕困难的精神。
活动准备:1、布置场地,接好长绳,系上若干“香蕉”(离幼儿举直手臂时的指尖约20厘米)。
2、初步掌握猴操。
活动过程:1、开始部分:(1)、引入:——师:今天老师扮演猴妈妈,朋友扮小猴,现在让我们一起来锻炼身体吧。
(2)、幼儿在教师的带领下,做猴操(自编):上肢运动、下肢运动、体侧运动、体转运动、腹背运动、跳跃运动、放松运动。
2、基本部分:(1)、引入:——师:做完操,你们觉得肚子饿了吗?咦… 有没有闻到一种香味,哪是什么的香味?(香蕉)要不我们一起去摘香蕉好吗?(2)、讲解、示范:屈膝、前脚掌瞪地向上跳起并伸手摘香蕉。
(3)、请幼儿原地徒手练习3——4次。
(4)、以游戏“摘香蕉”的形式巩固练习纵跳触物的动作,对个别能力弱的幼儿要进行个别指导。
(5)、比赛谁摘的香蕉多。
3、结束部分(1)、教师评价;表扬认真学习、不怕困难的幼儿。
(2)、幼儿随音乐自由跳舞或模拟各种猴的动作(表现出丰收的喜悦)活动延伸:大家一起品尝香蕉。
体育游戏:小猴摘桃[活动目标]1、练习幼儿手膝爬。
2、能动作熟练地钻过山洞,跳起摘桃,培养幼儿动作的协调性和弹跳力。
3、指导幼儿遵守游戏规则,培养幼儿的规则意识。
[活动准备]垫子、扯好的横线、横线上粘好的教具桃子。
[活动过程]玩法:幼儿扮演小猴,分成人数相等的四队,分别站在起跑线上。
教师讲解游戏的玩法,然后示范动作,强调游戏规则。
游戏开始,教师发出信号,各队第一个幼儿向前跑去,幼儿两膝着地爬行,钻过山洞,跑到横线下,双脚跳起触摸桃子,摸到桃子的算数,然后转身跑回,拍一下下一个小朋友的手,站到对尾。
依次进行,最后以先跑完自己组人数的队赢。
规则:1、必须用手膝着地向前爬行。
2、每个幼儿必须摸打桃子才可以跑回。
3、接力的幼儿被拍到手后才能开始跑。
教后记:本活动主要是让幼儿练习两手两膝着地向前爬行,幼儿对这样的活动非常感兴趣,幼儿分组比赛,由于没有桃子,可用积木充当桃子,将积木放在稍微高的地方,拿积木的时候,幼儿跳一下,培养幼儿的弹跳力,幼儿非常兴奋地进行比赛,旁边的小朋友都为他们呐喊助威,气氛活跃而成功。
猴子的经典实验(一)
2017/3/4
猴子的经典实验(一)
后来慢慢的一只一只的,所有的旧猴子都 换成新猴子了,大家都不敢去动那香蕉。 但是他们都不知道为什么,只知道去动香 蕉会被猴扁。 这就是习惯的形成。
2017/3/4
6
2017/3/4
7
猴子的经典实验(一)
注:本实验原名为 “道德的起源”, 应某特设课程的需要,临时改为“习惯 的 形成”。 注意适当时改回来。
4
2017/3/4
猴子的经典实验(一)
后来实验人员再把一只旧猴子释放,换上 另外一只新猴子B。 这猴子B看到香蕉,也是迫不及待要去拿。 当然,一如刚才所发生的情形,其他四只 猴子海K了B一顿。 特别的是,那只A猴子打的特别用力(这 叫老兵欺负新兵,或是媳妇熬成婆 )。 B猴子试了几次总是被打的很惨,只好作 罢。
2017/3/4
8ห้องสมุดไป่ตู้
猴子的经典实验(一)
习惯的形成
2017/3/4
1
猴子的经典实验(一)
把五只猴子关在一个笼子里,上头 有一串香蕉,实验人员装了一个自动装置。 一旦侦测到有猴子要去拿香蕉,马 上就会有水喷向笼子,而这五只猴子都 会一身湿。
2017/3/4
2
猴子的经典实验(一)
首先有只猴子想去拿香蕉,当然, 结果就是每只猴子都淋湿了。 之後每只猴子在几次的尝试后,发 现莫不如此。 于是猴子们达到一个共识:不要去 拿香蕉,以避免被水喷到。
2017/3/4 3
猴子的经典实验(一)
后来实验人员把其中的一只猴子释放,换 进去一只新猴子A。 这只猴子A看到香蕉,马上想要去拿。 结果,被其他四只猴子海K了一顿。 因为其他四只猴子认为猴子A会害他们被 水淋到,所以制止他去拿香蕉,A尝试了几次, 虽被打的满头包,依然没有拿到香蕉。 当然,这五只猴子就没有被水喷到。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
猴子摘香蕉实验报告记录(含代码)————————————————————————————————作者:————————————————————————————————日期:华中科技大学《人工智能与模式识别》实验报告院系:电子与信息工程系班级:姓名:同组人:指导老师:电话:邮箱:日期:2013年12月24日一、实验内容利用一阶谓词逻辑求解猴子摘香蕉问题:房内有一个猴子,一个箱子,天花板上挂了一串香蕉,其位置如图所示,猴子为了拿到香蕉,它必须把箱子搬到香蕉下面,然后再爬到箱子上。
请定义必要的谓词,列出问题的初始化状态(即下图所示状态),目标状态(猴子拿到了香蕉,站在箱子上,箱子位于位置b)。
(附加:从初始状态到目标状态的谓词演算过程。
)二、实验平台VC6.0三、实验分析1. 定义描述环境状态的谓词。
AT(x,w):x在t处,个体域:xϵ{monkey},wϵ{a,b,c,box};HOLD(x,t):x手中拿着t,个体域:tϵ{box,banana};EMPTY(x):x手中是空的;ON(t,y):t在y处,个体域:yϵ{b,c,ceiling};CLEAR(y):y上是空的;BOX(u):u是箱子,个体域:uϵ{box};BANANA(v):v是香蕉,个体域:vϵ{banana};2. 使用谓词、连结词、量词来表示环境状态。
问题的初始状态可表示为:S o:AT(monkey,a)˄EMPTY(monkey)˄ON(box,c)˄ON(banana,ceiling)˄CLEAR(b)˄BOX(box)˄BANANA(banana)要达到的目标状态为:S g:AT(monkey,box)˄HOLD(monkey,banana)˄ON(box,b)˄CLEAR(ceiling)˄CLEAR(c)˄BOX(box)˄BANANA(banana)3. 从初始状态到目标状态的转化, 猴子需要完成一系列操作, 定义操作类谓词表示其动作。
WALK(m,n):猴子从m 走到n 处,个体域:m,n ϵ{a,b,c};CARRY(s,r):猴子在r 处拿到s ,个体域:r ϵ{c,ceiling},s ϵ{box,banana};CLIMB(u,b):猴子在b 处爬上u ;这3个操作也可分别用条件和动作来表示。
条件直接用谓词公式表示,是为完成相应操作所必须具备的条件;当条件中的事实使其均为真时,则可激活操作规则,于是可执行该规则中的动作部分。
动作通过前后状态的变化表示,即通过从动作前删除或增加谓词公式来描述动作后的状态。
WALK(m,n):猴子从m 走到n 处条件:AT(monkey,m)动作:⎩⎨⎧),(),(n monkey AT m monkey AT 增加:删除: CARRY(s,r):猴子在r 处拿到s条件:AT(monkey,r)˄EMPTY(monkey)˄ON(s,r)˄BOX(box)˄BANANA(banana)动作:⎩⎨⎧∧∧)(),(),()(r CLEAR s monkey HOLD r s ON monkey EMPTY 增加:删除: CLIMB(u,b):猴子在b 处爬上u条件:AT(monkey,b)˄HOLD(monkey,u)˄CLEAR(b)˄BOX(box)˄BANANA(banana)动作:⎩⎨⎧∧∧∧),()(),()(),(),(c u ON monkey EMPTY u monkey AT c CLEAR u monkey HOLD b monkey AT 增加:删除: 4. 按照行动计划, 一步步进行状态替换, 直至目标状态。
AT(monkey,a)˄EMPTY(monkey)˄ON(box,c)˄ON(banana,ceiling)˄CLEAR(b)˄BOX(box)˄BANANA(banana)n c m a c a WALK 代换用代换用,),(⇓AT(monkey,c)˄EMPTY(monkey)˄ON(box,c)˄ON(banana,ceiling)˄CLEAR(b)˄BOX(box)˄BANANA(banana)r box s c box c CARRY 代换用代换用,),(⇓AT(monkey,c)˄HOLD(monkey,box)˄ON(banana,ceiling)˄CLEAR(b)˄CLEAR(c)˄BOX(box)˄BANANA(banana)n b m c b c WALK 代换用代换用,),(⇓AT(monkey,b)˄HOLD(monkey,box)˄ON(banana,ceiling)˄CLEAR(b)˄CLEAR(c)˄BOX(box)˄BANANA(banana))(⇓用,boxbuCLIMB代换boxAT(monkey,box)˄EMPTY(monkey)˄ON(box,b)˄ON(banana,ceiling)˄CLEAR(c)˄BOX(box)˄BANANA(banana)用,代换),(用⇓ceilingrsbananabananaceilingCARRY代换AT(monkey,box)˄HOLD(monkey,banana)˄ON(box,b)˄CLEAR(ceiling)˄CLEAR(c)˄BOX(box)˄BANANA(banana)(目标得解)猴子行动的规则序列是:WALK(a,c)→CARRY(c,box)→WALK(c,b)→CLIMB(box,b)→CARRY(banana,ceiling)在上述过程中,我们应该注意,当猴子执行某一个操作之前,需要检查当前状态是否可使所要求的条件得到满足,即证明当前状态是否蕴涵操作所要求的状态的过程。
在行动过程中,检查条件的满足性后才进行变量的代换。
代入新条件后的新状态如果是目标状态,则问题解决;否则看是否满足下面的操作,如果不满足或即使满足却又回到了原来的状态,那么代入无效。
四、源代码#include <stdio.h>struct State{int monkey; /*-1:Monkey at A;0: Monkey at B;1:Monkey at C;*/int box; /*-1:box at A;0:box at B;1:box at C;*/int banana; /*Banana at B,Banana=0*/int monbox; /*-1: monkey on the box;1: monkey the box;*/};struct State States [150];char* routesave[150];/*function monkeygoto,it makes the monkey goto the other place*/void monkeygoto(int b,int i){int a;a=b;if (a==-1){routesave[i]="Monkey go to A";States[i+1]=States[i];}else if(a==0){routesave[i]="Monkey go to B";States[i+1]=States[i];States[i+1].monkey=0;}else if(a==1){routesave[i]="Monkey go to C";States[i+1]=States[i];States[i+1].monkey=1;}else{printf("parameter is wrong");}}/*end function monkeyygoto*//*function movebox,the monkey move the box to the other place*/ void movebox(int a,int i){int B;B=a;if(B==-1){routesave[i]="monkey move box to A";States[i+1]=States[i];States[i+1].monkey=-1;States[i+1].box=-1;}else if(B==0){routesave[i] = "monkey move box to B";States[i+1]=States[i];States[i+1].monkey=0;States[i+1].box=0;}else if(B==1){routesave[i] = "monkey move box to C";States[i+1]=States[i];States[i+1].box=1;}else{printf("parameter is wrong");}}/*end function movebox*//*function climbonto,the monkey climb onto the box*/void climbonto(int i){routesave[i]="Monkey climb onto the box";States[i+1]=States[i];States[i+1].monbox=1;}/*function climbdown,monkey climb down from the box*/void climbdown(int i){routesave[i]="Monkey climb down from the box";States[i+1]=States[i];States[i+1].monbox=-1;}/*function reach,if the monkey,box,and banana are at the same place,the monkey reach banana*/ void reach(int i){routesave[i]="Monkey reach the banana";}/*output the solution to the problem*/void showSolution(int i){int c;printf ("%s \n", "Result to problem:");for(c=0; c<i+1; c++){printf ("Step %d : %s \n",c+1,routesave[c]);}printf("\n");}/*perform next step*/void nextStep(int i){int c;int j;if(i>=150){printf("%s \n", "steplength reached 150,have problem ");return;}for (c=0; c<i; c++) /*if the current state is same to previous,retrospect*/{if(States[c].monkey==States[i].monkey&&States[c].box==States[i].box&&States[c].banana==States[i].banana&& States[c].monbox==States[i].monbox){return;}}if(States[i].monbox==1&&States[i].monkey==0&&States[i].banana==0&&States[i].box==0){showSolution(i);printf("Press any key to continue \n");getchar();/*to save screen for user,press any key to continue*/return;}j=i+1;if(States[i].monkey==0){if(States[i].box==0){if(States[i].monbox==-1){climbonto(i);reach(i+1);nextStep(j);/*monkeygoto(-1,i);nextStep(j);monkeygoto(0,i);nextStep(j);movebox(-1,i);nextStep(j);movebox(0,i);nextStep(j);*/}else{reach(i+1);nextStep(j);/*climbdown(i);nextStep(j);*/}}else if(States[i].box==1){/*monkeygoto(-1,i);nextStep(j);*/monkeygoto(1,i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}else /*box==-1*/{monkeygoto(-1,i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}}/*end if*/if(States[i].monkey==-1){if(States[i].box==-1){if(States[i].monbox==-1){movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}else{climbdown(i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}}else if(States[i].box==0){monkeygoto(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}else{monkeygoto(1,i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}}/*end if*/if(States[i].monkey==1){if (States[i].box==1){if(States[i].monbox==-1){movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}else{climbdown(i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}}else if(States[i].box==-1){monkeygoto(-1,i);nextStep(j);movebox(0,i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}else{monkeygoto(0,i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}}/*end if*/}/*end nextStep*/int main(){States[0].monkey=-1;States[0].box=1;States[0].banana=0;States[0].monbox=-1;nextStep(0);}五、实验截图。