关于三只母鸡和三只小鸡过河问题

本文通过编程方式解决了一个经典的逻辑谜题——六只鸡过河问题。该问题涉及三只母鸡和三只小鸡如何利用一艘仅能容纳两只鸡的小船安全地从河的一侧到达另一侧。代码使用了回溯法,并详细展示了每一步的操作过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近找工作闲来无事,看到http://topic.youkuaiyun.com/t/20021206/23/1239072.html问题。

就编了个程序解决这个问题。

 

三只母鸡,三只小鸡在河东岸,一条小舟每次最多载两只鸡(大小不论)。   

  条件:   

  1、母鸡都会划船。   

  2、只有一只小鸡会划船,其余两只不会。   

  3、当小鸡母亲不在身边时,其余母鸡就会啄死这只小鸡。

此题目转自http://topic.youkuaiyun.com/t/20021206/23/1239072.html

 

一个解读是,船上和岸上是不同地方。

程序采用回溯法。在东岸上船尽量上两只鸡。在西岸尽量只上一只鸡。

 

一下代码在VC6中运行。

 

头文件 ChickRiver.h

 

 

 

文件ChickRiver.cpp

 

结果:

 

succeed cross river and 

step=0

EAST:id=0 BIG, id=1 SMALL, id=2 BIG, id=3 SMALL, id=4 BIG, id=5 SMALL, 

BOAT:

 

 

WEST:

boat in east

===================

step=1

EAST:id=2 BIG, id=3 SMALL, id=4 BIG, id=5 SMALL, 

 

BOAT:id=0 BIG, id=1 SMALL, 

 

WEST:

boat in river to west 

===================

step=2

EAST:id=2 BIG, id=3 SMALL, id=4 BIG, id=5 SMALL, 

 

 

BOAT:

WEST:id=0 BIG, id=1 SMALL, 

boat in west

===================

step=3

EAST:id=2 BIG, id=3 SMALL, id=4 BIG, id=5 SMALL, 

 

BOAT:id=0 BIG, 

 

WEST:id=1 SMALL, 

boat in river to east 

===================

step=4

EAST:id=0 BIG, id=2 BIG, id=3 SMALL, id=4 BIG, id=5 SMALL, 

BOAT:

 

 

WEST:id=1 SMALL, 

boat in east

===================

step=5

EAST:id=0 BIG, id=4 BIG, id=5 SMALL, 

 

BOAT:id=2 BIG, id=3 SMALL, 

 

WEST:id=1 SMALL, 

boat in river to west 

===================

step=6

EAST:id=0 BIG, id=4 BIG, id=5 SMALL, 

 

 

BOAT:id=2 BIG, 

WEST:id=1 SMALL, id=3 SMALL, 

boat in west

===================

step=7

EAST:id=0 BIG, id=4 BIG, id=5 SMALL, 

 

BOAT:id=2 BIG, 

 

WEST:id=1 SMALL, id=3 SMALL, 

boat in river to east 

===================

step=8

EAST:id=0 BIG, id=2 BIG, id=4 BIG, id=5 SMALL, 

BOAT:

 

 

WEST:id=1 SMALL, id=3 SMALL, 

boat in east

===================

step=9

EAST:id=4 BIG, id=5 SMALL, 

 

BOAT:id=0 BIG, id=2 BIG, 

 

WEST:id=1 SMALL, id=3 SMALL, 

boat in river to west 

===================

step=10

EAST:id=4 BIG, id=5 SMALL, 

 

 

BOAT:

WEST:id=0 BIG, id=1 SMALL, id=2 BIG, id=3 SMALL, 

boat in west

===================

step=11

EAST:id=4 BIG, id=5 SMALL, 

 

BOAT:id=1 SMALL, 

 

WEST:id=0 BIG, id=2 BIG, id=3 SMALL, 

boat in river to east 

===================

step=12

EAST:id=4 BIG, id=5 SMALL, 

BOAT:id=1 SMALL, 

 

 

WEST:id=0 BIG, id=2 BIG, id=3 SMALL, 

boat in east

===================

step=13

EAST:id=4 BIG, id=5 SMALL, 

 

BOAT:id=1 SMALL, 

 

WEST:id=0 BIG, id=2 BIG, id=3 SMALL, 

boat in river to west 

===================

step=14

EAST:id=4 BIG, id=5 SMALL, 

 

 

BOAT:id=1 SMALL, 

WEST:id=0 BIG, id=2 BIG, id=3 SMALL, 

boat in west

===================

step=15

EAST:id=4 BIG, id=5 SMALL, 

 

BOAT:id=0 BIG, id=1 SMALL, 

 

WEST:id=2 BIG, id=3 SMALL, 

boat in river to east 

===================

step=16

EAST:id=0 BIG, id=1 SMALL, id=4 BIG, id=5 SMALL, 

BOAT:

 

 

WEST:id=2 BIG, id=3 SMALL, 

boat in east

===================

step=17

EAST:id=1 SMALL, id=5 SMALL, 

 

BOAT:id=0 BIG, id=4 BIG, 

 

WEST:id=2 BIG, id=3 SMALL, 

boat in river to west 

===================

step=18

EAST:id=1 SMALL, id=5 SMALL, 

 

 

BOAT:

WEST:id=0 BIG, id=2 BIG, id=3 SMALL, id=4 BIG, 

boat in west

===================

step=19

EAST:id=1 SMALL, id=5 SMALL, 

 

BOAT:id=0 BIG, 

 

WEST:id=2 BIG, id=3 SMALL, id=4 BIG, 

boat in river to east 

===================

step=20

EAST:id=1 SMALL, id=5 SMALL, 

BOAT:id=0 BIG, 

 

 

WEST:id=2 BIG, id=3 SMALL, id=4 BIG, 

boat in east

===================

step=21

EAST:id=5 SMALL, 

 

BOAT:id=0 BIG, id=1 SMALL, 

 

WEST:id=2 BIG, id=3 SMALL, id=4 BIG, 

boat in river to west 

===================

step=22

EAST:id=5 SMALL, 

 

 

BOAT:

WEST:id=0 BIG, id=1 SMALL, id=2 BIG, id=3 SMALL, id=4 BIG, 

boat in west

===================

step=23

EAST:id=5 SMALL, 

 

BOAT:id=1 SMALL, 

 

WEST:id=0 BIG, id=2 BIG, id=3 SMALL, id=4 BIG, 

boat in river to east 

===================

step=24

EAST:id=1 SMALL, id=5 SMALL, 

BOAT:

 

 

WEST:id=0 BIG, id=2 BIG, id=3 SMALL, id=4 BIG, 

boat in east

===================

step=25

EAST:

 

BOAT:id=1 SMALL, id=5 SMALL, 

 

WEST:id=0 BIG, id=2 BIG, id=3 SMALL, id=4 BIG, 

boat in river to west 

===================

step=26

EAST:

 

 

BOAT:

WEST:id=0 BIG, id=1 SMALL, id=2 BIG, id=3 SMALL, id=4 BIG, id=5 SMALL, 

boat in west

===================

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值