人狼羊菜过河

人狼羊菜过河问题解决算法
这是一个关于人狼羊菜过河问题的Java程序实现。通过组合所有可能状态,去除禁忌状态,构造图并使用深度优先搜索寻找解决方案。程序展示了如何在满足狼不能单独与羊在一起,羊不能单独与菜在一起的条件下,将所有人和物品安全送达对岸。
说明:本程序只是寻找到一种情况。欢迎大家进行订正。

package com.xaut.bianyiyuanli.cherry;

import java.util.Arrays;
import java.util.List;

/*
 *  实验4:人狼羊菜过河
* 一、 实验目的:
* 输出人狼羊菜过河的方法
* 二、 实验内容:
* 组合出所有可能状态
* 去除禁忌状态
* 构造图(邻接矩阵或者邻接表)
* 查找路径(深度优先、广度优先)
*/
/*
 * 题目分析:
 * 每次人最多只能带一种,狼,羊,或者菜,其中狼和羊不能同时放在一边,羊和菜也不能同时放在一边
 * 最开始的状态是人,狼,羊,菜同时在一边,现在需要分几次最终实现把所有的动物或者是菜送到另一边。
 * 每次只有四种可能:人和狼,人和羊,人和菜,人
 * */
public class ExperienceFour {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  //初始化状态,原地方四个都在   河对岸什么都没有
  String [] source_place ={"wolf","sheep","cabbage"};
  String [] desti
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值