python猴子摘桃问题_python解决简单实际问题

python猴子摘桃问题_python解决简单实际问题如何实现猴子摘香蕉问题,只需要几点即可1.猴子与箱子的位置关系2.箱子与香蕉的位置关系3.猴子有无摘到香蕉猴子摘到香蕉的前提条件1.猴子与箱子在一起2.箱子与香蕉在一起3.猴子在箱子上面4.猴子没有摘到香蕉猴子可能存在的几种位置状态1.箱子和猴子不在一起2.猴子跟箱子在一起且不跟香蕉在一起3.猴子不在箱子上并且猴子跟箱子在一起4.猴子在箱子上并且箱子跟香蕉在一起以及猴子没有摘取香蕉5.猴子在箱子上但箱子不跟香蕉在一起6.猴子取到香蕉根据上述开始

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

如何实现猴子摘香蕉问题,只需要几点即可

1.猴子与箱子的位置关系

2.箱子与香蕉的位置关系

3.猴子有无摘到香蕉

猴子摘到香蕉的前提条件

1.猴子与箱子在一起

2.箱子与香蕉在一起

3.猴子在箱子上面

4.猴子没有摘到香蕉

猴子可能存在的几种位置状态

1.箱子和猴子不在一起

2.猴子跟箱子在一起且不跟香蕉在一起

3.猴子不在箱子上并且猴子跟箱子在一起

4.猴子在箱子上并且箱子跟香蕉在一起以及猴子没有摘取香蕉

5.猴子在箱子上但箱子不跟香蕉在一起

6.猴子取到香蕉

根据上述开始实现代码

首先定义猴子的动作

1.猴子走向箱子

# 猴子走向箱子
def monkey_go_box(monkey,box):
    
    global i  #步数
    i+=1
    print("step "+str(i)+": "+"Monkey从"+monkey+"走向"+box)

2.猴子推箱子  

# 猴子推箱子    
def monkey_push_box(box,banana):
    global i
    i+=1
    print("step "+str(i)+":"+"Monkey将箱子从"+box+"推向"+banana)

3.猴子爬上箱子

# 猴子爬上箱子    
def monkey_clim_box():
    global i
    i+=1
    print("step "+str(i)+": "+"Monkey爬上箱子")

4.猴子爬下箱子

# 猴子爬下箱子
def monkey_drop():
    global i
    i+=1
    print("step "+str(i)+": "+"Monkey爬下箱子")

5.猴子摘取香蕉

# 猴子摘取香蕉
def monkey_grasp():
    global i
    i+=1
    print("step "+str(i)+": "+"Monkey摘到香蕉")

猴子根据不同位置状态做出相应的动作

1.箱子和猴子不在一起才能走向箱子

if monkey!=box:
            monkey_go_box(monkey,box)
            monkey=box

2.猴子跟箱子在一起且不跟香蕉在一起以及猴子不在箱子上才能推

if box!=banana and monkey==box and monkey_y!="1":
            monkey_push_box(box,banana)
            monkey=box=banana

3.猴子不在箱子上并且猴子跟箱子在一起才能爬

if monkey_y!="1" and monkey==box:
            monkey_clim_box()
            monkey_y="1"

4.猴子在箱子上并且箱子跟香蕉在一起以及猴子没有摘取香蕉才能摘取香蕉

if monkey_y=="1" and box==banana and monkey_re!="1":
            monkey_grasp()
            monkey_re="1"

5.猴子在箱子上但箱子不跟香蕉在一起才能爬下箱子

if monkey_y=="1" and box!=banana:
            monkey_drop()
            monkey_y="0"

完整代码

# 猴子走向箱子
def monkey_go_box(monkey,box):
    
    global i  #步数
    i+=1
    print("step "+str(i)+": "+"Monkey从"+monkey+"走向"+box)

# 猴子推箱子    
def monkey_push_box(box,banana):
    global i
    i+=1
    print("step "+str(i)+":"+"Monkey将箱子从"+box+"推向"+banana)
    
# 猴子爬上箱子    
def monkey_clim_box():
    global i
    i+=1
    print("step "+str(i)+": "+"Monkey爬上箱子")
    
# 猴子摘取香蕉
def monkey_grasp():
    global i
    i+=1
    print("step "+str(i)+": "+"Monkey摘到香蕉")
    
# 猴子爬下箱子
def monkey_drop():
    global i
    i+=1
    print("step "+str(i)+": "+"Monkey爬下箱子")



       
if __name__ == "__main__":
    i=0
    print("请输入monkey位置,猴子是否在箱子上(1:在,0:不在)上以及猴子是否摘取香蕉(1:是,0:否),香蕉的位置,箱子的位置:")
    monkey,monkey_y,monkey_re,banana,box=input().split(",")
    
    while True:
        # 箱子和猴子不在一起才能走向箱子
        if monkey!=box:
            monkey_go_box(monkey,box)
            monkey=box
            continue
            
        # 猴子跟箱子在一起且不跟香蕉在一起以及猴子不在箱子上才能推
        if box!=banana and monkey==box and monkey_y!="1":
            monkey_push_box(box,banana)
            monkey=box=banana
            continue
            
        # 猴子不在箱子上并且猴子跟箱子在一起才能爬
        if monkey_y!="1" and monkey==box:
            monkey_clim_box()
            monkey_y="1"
            continue
            
        # 猴子在箱子上并且箱子跟香蕉在一起以及猴子没有摘取香蕉才能摘取香蕉
        if monkey_y=="1" and box==banana and monkey_re!="1":
            monkey_grasp()
            monkey_re="1"
            continue
            
        # 猴子在箱子上但箱子不跟香蕉在一起才能爬下箱子
        if monkey_y=="1" and box!=banana:
            monkey_drop()
            monkey_y="0"
            continue
            
        # 猴子取到香蕉结束
        if monkey_re =="1":
            break

运行图效果

python猴子摘桃问题_python解决简单实际问题

 python猴子摘桃问题_python解决简单实际问题

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189309.html原文链接:https://javaforall.net

(0)
上一篇 2026年4月14日 上午7:28
下一篇 2026年4月14日 上午7:34


相关推荐

  • bzoj1396_bzoj3771

    bzoj1396_bzoj3771传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1396题目大意:题解:后缀自动机,只出现一次,那么就是right值为1,那么对于一段1—-L—-R来说,(L—-R)为一个最短识别子串对于(1—-L-1)则可以用R-i+1来更新,对于(L—R)则可以用R-L+1来更新,那么两个线段树来维护即可。代码:

    2022年8月12日
    7
  • android 获取收到短信验证码,Android自动获取短信验证码

    android 获取收到短信验证码,Android自动获取短信验证码如此当有短信收到时就可以将短信内容写到SD卡中的文件里在另一个java类中写个读取文件内容的方法,并在写测试用例过程中,将得到的String按验证码的具体位置截取即可。publicStringread(Stringstr)throwsIOException{Filefile=newFile(str);FileInputStreamfis=newFileInputStream(fi…

    2022年7月25日
    13
  • 贴片电阻丝印是什么意思「建议收藏」

    贴片电阻丝印是什么意思「建议收藏」贴片电阻上的数字是什么意思?贴片电阻是电路原理中最常见的电子器件,在一块电路板上使用量较大的将会便是电阻器和电容器了。电阻由于体型小,非常容易设备电焊焊接,能极大地提升批量生产高效率、减少错误率、控制成本,因此应用愈来愈普遍。贴片电阻表层一般都是印着丝印油墨,其丝印油墨带表了不一样的电阻值信息内容,电阻的丝印油墨怎样讲解。普遍的电热丝印一般有这几类状况:1)含有三位数据的丝印油墨;2)2)含有四位数据的丝印油墨;3)3)含有英文字母R的丝印油墨;4)4)含有数据和英文字母混和的丝印油墨。带有

    2022年8月21日
    8
  • springboot的启动流程图_springboot运行流程

    springboot的启动流程图_springboot运行流程文章目录前言springboot启动流程图第一部分newSpringApplication()第二部分工厂对象构建实例第三部分SpringApplication.run(启动此应用)第四部分SpringApplicationRunListener第五部分banner彩蛋前言研究springboot启动的整个流程。springboot启动流程图第一部分newSpringApplication()第二部分工厂对象构建实例第三部分SpringApplication.

    2022年8月20日
    9
  • redis RDB持久化方式的工作原理是怎样的_杜兰特挽留纳什

    redis RDB持久化方式的工作原理是怎样的_杜兰特挽留纳什我们已经知道对于一个企业级的redis架构来说,持久化是不可减少的,持久化主要是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面,比如你redis整个挂了,然后redis就不可用了,你要做的事情是让redis变得可用,尽快变得可用,重启redis,尽快让它对外提供服务。………

    2025年6月6日
    6
  • Linux日志收集与分析项目教程_FilebeatLogstashELK整合

    Linux日志收集与分析项目教程_FilebeatLogstashELK整合

    2026年3月15日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号