ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 27718|回复: 110

[讨论] 出个算法题,大家练练手【3个和尚和3个妖怪过河】

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2018-9-2 09:58 | 显示全部楼层 |阅读模式
题目很简单:
3个和尚和3个妖怪要过河,河里只有1个小船每次载2位。
限制条件是,河两岸、小船上必须保证和尚数量>=妖怪数量,否则妖怪多时就要吃掉和尚。

目的,安全过河。
求,过河的方法步骤,以及一共有多少种(最简)过河方法。(即重复步骤不算)

结论是,需要11步,只有4种解法。
 
3
3
  
3
3
  
3
3
  
3
3
  
 
3
1
0
2
3
1
0
2
2
2
1
1
2
2
1
1
 
3
2
0
1
3
2
0
1
3
2
0
1
3
2
0
1
 
3
0
0
3
3
0
0
3
3
0
0
3
3
0
0
3
 
3
1
0
2
3
1
0
2
3
1
0
2
3
1
0
2
 
1
1
2
2
1
1
2
2
1
1
2
2
1
1
2
2
 
2
2
1
1
2
2
1
1
2
2
1
1
2
2
1
1
 
0
2
3
1
0
2
3
1
0
2
3
1
0
2
3
1
 
0
3
3
0
0
3
3
0
0
3
3
0
0
3
3
0
 
0
1
3
2
0
1
3
2
0
1
3
2
0
1
3
2
 
0
2
3
1
1
1
2
2
0
2
3
1
1
1
2
2
 
0
0
3
3
0
0
3
3
0
0
3
3
0
0
3
3


第一行为起始状态,依次为和尚数、妖怪数、过河和尚数、过河妖怪数,所以是 3、3/0、0
最终的状态应该是:0、0/3、3

…………
请大家讨论解此题的算法过程。

一般说用递归算法比较好,过几天大家讨论充分后,我会详细进行递归算法的解剖,以便想要学习递归的坛友进步。

评分

3

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-2 10:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
算法要求是通解,小船固定一次只能载2位,但和尚数m和妖怪数n不确定时,都要能解出答案。
(即,和尚和妖怪数应设置为变量,而不是常数)

一般说m、n的限制条件为m>=n (否则一开始妖怪就要吃掉和尚了。)
当m>n时,解法会多一些,步骤数也不同。

例如,3个和尚2个妖怪时,有14种解法,步骤数从7到11


4个和尚4个妖怪时无解。


评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-2 10:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
此题用递归,同样可以有广度搜索和深度搜索两种做法,

关键是要避免重复步骤,即棋类比赛中的【同形重复】状态。
也就是说,走了几步以后出现和之前同样的状态时,这中间的步骤就是无效的。

这个是解题的关键之一。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-2 10:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
希望大家在不写出代码时,先进行充分的讨论。

锻炼一下形象思维能力。

TA的精华主题

TA的得分主题

发表于 2018-9-2 20:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
为什么不可以这样
1、送2个妖怪过去,空船返回。3、1;0、2
2、送2个和尚过去,空船返回。1、1;2、2
3、送1个妖怪1个和尚过去。    0、0;3、3
可能我没懂题哈

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-9-2 20:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
excelvlookup 发表于 2018-9-2 20:27
为什么不可以这样
1、送2个妖怪过去,空船返回。3、1;0、2
2、送2个和尚过去,空船返回。1、1;2、2

话题都被你聊死了。没法聊了。哈哈!~

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-2 20:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
excelvlookup 发表于 2018-9-2 20:27
为什么不可以这样
1、送2个妖怪过去,空船返回。3、1;0、2
2、送2个和尚过去,空船返回。1、1;2、2

空船怎么开?不要跟我说全球GPS自动驾驶仪。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-4 11:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-9-4 14:24 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
香川群子 发表于 2018-9-2 20:41
空船怎么开?不要跟我说全球GPS自动驾驶仪。

逗死我啦。

TA的精华主题

TA的得分主题

发表于 2018-9-4 14:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
第一步:两个妖过去,下一个妖,留一个妖开船返回,3-1;1;0-1
第二步:再上一个妖,下一个妖,留一个妖开船返回,3-0;1;0-2
第三步:上一个光头,到对岸后把妖推下,光头不上岸,开船跑回,2-0;1;0-3
第四步:上一个光头,到岸后一起下,把妖推一个上船开船返回,1-0;1;2-2
第五步:妖接光头一起走,0-0;0;3-3
也不知理解的对不对?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-28 01:47 , Processed in 0.049468 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表