| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2963 人关注过本帖
标题:商人过河问题,有兴趣的进来编个小程
只看楼主 加入收藏
小乙shine
Rank: 1
等 级:新手上路
帖 子:9
专家分:9
注 册:2014-9-29
结帖率:0
收藏
已结贴  问题点数:20 回复次数:30 
商人过河问题,有兴趣的进来编个小程
3个商人带着3个仆人过河,过河的工具只有一艘小船,只能同时载两个人过河,包括划船的人。在河的任何一边,只要仆人的数量超过商人的数量,仆人就会联合起来将商人杀死并抢夺其财物,问商人应如何设计过河顺序才能让所有人都安全地过到河的另一边。
(希望喜欢c语言的朋友们不要粘贴复制啦,自己测测自己的算法与编程能力,呵呵)
搜索更多相关主题的帖子: 如何 能力 联合 朋友 c语言 
2014-09-29 12:00
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:2 
很久不见有人讨论算法了。我想你已经写出代码了。等你发上来我看看。

重剑无锋,大巧不工
2014-09-29 14:00
erty1001
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
收藏
得分:2 
简单说说:
可以采用蒙特卡洛随机算法,给出所有可能的移动,记成A-K
然后随机选取A-K  不合法则再随机选
每一次判断,不成功则继续选A-K
直到成功。记录每一次的方法
2014-09-29 20:35
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 3 楼 erty1001
按你的想法写出代码(有点小问题也无所谓),我送你100专家分。

重剑无锋,大巧不工
2014-09-29 23:09
pycansi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:418
专家分:1060
注 册:2012-7-26
收藏
得分:2 
欢迎 b版 重现江湖

也来凑个热闹,不过思索后发现这题$#!@阿....
比如 仆人划船,先运一个商人过去,然后只能再运仆人,但当仆人运到彼岸,船上两个仆人可以联合制服这个商人...
其他情况殊途同归...

此题如果想要有解,得把一个仆人给绑在船上....好黑暗的解题...不过正好契合黑暗的题目....


莫问前尘有愧,但求今生无悔
2014-09-30 10:55
pycansi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:418
专家分:1060
注 册:2012-7-26
收藏
得分:0 
简单实现了一下后才发现,既然可以绑在船上,那也可以绑在岸边……这样可能最合题意了吧


莫问前尘有愧,但求今生无悔
2014-09-30 11:56
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:2 
回复 3 楼 erty1001
我的想法比较笨,所有可能,一商一仆、两商、两仆、然后回来的有商人、仆人两种可能,这样组合起来就6种可能,中间状态量也难把握,回头在想想吧!

Maybe
2014-09-30 12:31
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:2 
这个题目的答案很容易得到,关键是算法的实现。

一主一仆过,主回;
两仆过,一仆回;
两主过,一主一仆回;
两主过,一仆回;
两仆过,完成。

其实算法的实现过程不过就是大脑的思考过程,但是中间判断的过程不会用代码实现了。尝试伪代码结果伪代码都没写出来。郁闷。

代码测试环境:  WinXP+C-Free5.0.
2014-09-30 12:47
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
收藏
得分:2 
这个我第一步就不会啊

用什么数据结构表示商人,仆人,怎么标记他们来回渡河的过程?用每个人一个标志位(0或者1)跟标志位变化来表示这个过程?

让所有0变成1,并且仆人0的数量和1的数量都不能多于商人
2014-09-30 14:51
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
收藏
得分:0 
回复 5 楼 pycansi
同欢迎B版
2014-09-30 14:52
快速回复:商人过河问题,有兴趣的进来编个小程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038342 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved