用python编写猴子吃桃问题_人工智能猴子摘香蕉

用python编写猴子吃桃问题_人工智能猴子摘香蕉一个房间里,天花板上挂有一串香蕉,有一只猴子可在房间里任意活动(到处走动,推移箱子,攀登箱子等)。设房间里还有一只可被猴子移动的箱子,且猴子登上箱子时才能摘到香蕉,问猴子在某一状态下(设猴子位置为A,香蕉位置在B,箱子位置为C),如何行动可摘取到香蕉。此问题的前提是猴子只有站在箱子上才能拿到香蕉,因此,需要首先让猴子找到箱子,再找到香蕉,并将箱子搬到香蕉下面。2.1使用语义网络实现猴子摘香蕉的知识表示2.2用java实现猴子摘香蕉Monkey类:12345678910111213141516171

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

Jetbrains全系列IDE稳定放心使用

  • 背景简介/问题描述

一个房间里,天花板上挂有一串香蕉,有一只猴子可在房间里任意活动(到处走动,推移箱子,攀登箱子等)。设房间里还有一只可被猴子移动的箱子,且猴子登上箱子时才能摘到香蕉,问猴子在某一状态下(设猴子位置为A,香蕉位置在B,箱子位置为C),如何行动可摘取到香蕉。

    此问题的前提是猴子只有站在箱子上才能拿到香蕉,因此,需要首先让猴子找到箱子,再找到香蕉,并将箱子搬到香蕉下面。

  • 算法介绍

2.1 使用语义网络实现猴子摘香蕉的知识表示

用python编写猴子吃桃问题_人工智能猴子摘香蕉

2.2用java实现猴子摘香蕉

Monkey类:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

package rgznlab1;

public class monkey{

    private final String position;

    private boolean status;

    public monkey(String position){

        this.position = position;

        this.status = false;

    }

    public String getPosition() {

        return this.position;

    }

    public box move(box b,String newPosition) {

        if(this.position.equals(b.getPosition())&&!this.status) {

            System.out.println(“猴子在”+this.position+”处把箱子推到了”+newPosition);

            return new box(newPosition);

             

        }return b;

    }public void climb(box b) {

        if(this.position.equals(b.getPosition())&&!this.status) {

            this.status = true;

            System.out.println(“猴子在”+this.position+”处爬上了箱子”);

        }

    }public void pick(banana b) {

        if(this.status&&this.position.equals(b.getPosition())) {

            System.out.println(“猴子在”+this.position+”处摘到了香蕉”);

        }

    }

Box类:

1

2

3

4

5

6

7

8

9

10

package rgznlab1;

public class box{

    private final String position;

    public box(String position){

        this.position = position;

    }public String getPosition() {

        return this.position;

    }

}

Banana类:

1

2

3

4

5

6

7

8

9

10

package rgznlab1;

public class banana{

    private final String position;

    public banana(String position){

        this.position = position;

    }public String getPosition() {

        return this.position;

    }

}

Main方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

package rgznlab1;

import java.util.Scanner;

public class main {

    public static void main(String[] args) {

        Scanner input=new Scanner(System.in);

        System.out.println(“请输入猴子位置”);

        String p1=input.next();

        System.out.println(“请输入箱子位置”);

        String p2=input.next();

        System.out.println(“请输入香蕉位置”);

        String p3=input.next();

monkey m = new monkey(p1);

box b = new box(p2);

banana bn = new banana(p3);

System.out.println(“第一步:猴子移动到box处从”+m.getPosition()+”到”+b.getPosition());

m = new monkey(b.getPosition());

System.out.println(“第二步:猴子推动box从”+b.getPosition()+”到banana处”+bn.getPosition());

b = m.move(b, bn.getPosition());

System.out.println(“第三步:猴子爬上”+b.getPosition()+”处的box”);

m.climb(b);

System.out.println(“第四步:猴子摘到香蕉”);

m.pick(bn);

    }

}

  • 算法实现

3.1 实验结果

运行结果如图所示:

用python编写猴子吃桃问题_人工智能猴子摘香蕉

  • 讨论及结论

本次实验,我同小组成员较好地完成了猴子摘香蕉的几种不同的知识表示的实现,并且通过代码层面的实现使我对知识有了更深的了解,也更加体会到猴子摘香蕉这一典型问题的价值与意义。

参考文献

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2014—多校训练2(ZCC Loves Codefires)

    2014—多校训练2(ZCC Loves Codefires)

    2021年8月31日
    55
  • java跨境电商ERP源码「建议收藏」

    java跨境电商ERP源码「建议收藏」1订单管理本模块支持多平台订单自动下载同步以及多帐号多店铺订单管理,方便用户对销售进行科学、直观的分类管理。包括订单处理,包装验货,称重出库,智能交运,交运日志,快速拣货,快速发货等子模块。2商品管理(SKU)商品管理模块,提供对亚马逊店逊商品进行线下管理的功能,包括但不限于中文名称、英文名称,售价等相应管理3.采购管理采购管理主要对于商品采购、入库、及供应商的设置,并于商品细分,包括采购管理、入库管理和供应商管理模块。4.物流管理此模块主要提供用户设置速途未对接的物…

    2022年9月20日
    0
  • java笔试题及答案最新(net面试题及答案2020)

    最新更新日志2018年12月28日:更新了springboot相关面试题,spring更多的内容(类别:开源框架)2019年11月14日:更新redis缓存雪崩,击穿,穿透相关面试题,更新了tomcat调优相关问题,更新了TCP三次握手四次握手问题JAVA基础JAVA中的几种基本类型,各占用多少字节?下图单位是bit,非字节1B=8bitString能被继承吗?…

    2022年4月16日
    45
  • 计算机组成原理总结及知识网图「建议收藏」

    计算机组成原理总结及知识网图「建议收藏」计算机组成原理知识摘要,个人复习整理,仅供参考

    2022年6月1日
    39
  • 中级php面试题以及答案(net高级程序员面试题)

          博主最近找工作,记录了不少面试题,有些还是挺值的学习的,这里记录一下。有些我会给出参考链接,有些需要大家自己百度了,持续补充。。一、公司一1、php的接口和抽象类有什么区别,应用场景有哪些https://blog.csdn.net/hanxueyu666/article/details/75712917 https:…

    2022年4月16日
    64
  • 华为模拟器ensp怎么安装_模拟器下载手机版

    华为模拟器ensp怎么安装_模拟器下载手机版华为模拟器ENSP下载与安装教程【一】:安装环境1.Win10系统安装也可虚拟机安装【二】安装链接点击连接下载提取码:ob2v要是感觉下载慢的话可以开个会员(土豪随意)步骤1.下载后解压并安装,首先要先在安装这三个软件2.下面我们开始安装VirtualBox5.2.26并默认安装直接下一步就可以下面几步都是默认安装如图所示安装完成不想打开把运行勾去掉就行,点击完…

    2022年10月15日
    0

发表回复

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

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