没有合适的资源?快使用搜索试试~ 我知道了~
某论坛谈论的过桥算法
5星 · 超过95%的资源 需积分: 12 4 下载量 68 浏览量
2009-07-18
16:23:38
上传
评论
收藏 6KB TXT 举报
温馨提示
试读
7页
某论坛谈论的不同语言的过桥算法。。。。。
资源推荐
资源详情
资源评论
这是我在一个论坛上做的过桥算法编程,用的就是看家本领AS3来计算的
牛站长论坛 http://www.nb5.cn/viewthread.php?tid=339002&fromuid=349338
题目如下:
在水区看到撒旦发的一个帖子《3分钟内找出答案的人具有编程的潜力》
“天黑,雨,四人欲过一座桥.桥破旧,每次最多能容两人同时通过.且只有一支手电(过桥必须用手电). 甲单独过桥需1分钟,乙需2分钟,丙需5分钟,丁需7分钟. 则四人全部通过的最短时间是多少?”
于是想到发起这个活动,提高下论坛的活跃度(不知道具体结果如何,先发起着玩玩吧):
活动内容:通过编程(非纯数学计算)计算该题结果,编程语言不限,任何语言、脚本均可。
(注:看清楚要求,要编程实现,纯计算过程百度一下n多,就没技术竞赛的意义了)
活动要求:跟帖给出完整代码,需要有相对详细讲解过程的中文诠释。
关于此题的后续说明:
此题是要求通过编程来获得某个最优组合以得到最短时间,而不是仅仅用编程表示一下已知算法的排列,那样就失去此题锻炼编程思维的意义了。
此题是四个人过河,可以百度答案,也能很容易笔算出排列结果,但如果是5个、6个甚至更多的人呢?作为该题正确合理的编程,在原代码上稍做增加就应该能应用到更多的人数情况上。
需我的答案如下:
http://www.nb5.cn/thread-339002-10-1.html
code:
package
{
import flash.display.Sprite;
public class BridgeClassEx extends Sprite
{
//最大执行步数,限制超时返回
private var _maxTry:int = 1000;
//总通过时间
private var time:int = 0;
//船运作状态,true=过河 false=返回
private var _isGo:Boolean = true;
//尝试执行次数
private var _TryTimer:int = 0;
//人群,用时间去表示不同人的物点
private var Man:Array = new Array();
牛站长论坛 http://www.nb5.cn/viewthread.php?tid=339002&fromuid=349338
题目如下:
在水区看到撒旦发的一个帖子《3分钟内找出答案的人具有编程的潜力》
“天黑,雨,四人欲过一座桥.桥破旧,每次最多能容两人同时通过.且只有一支手电(过桥必须用手电). 甲单独过桥需1分钟,乙需2分钟,丙需5分钟,丁需7分钟. 则四人全部通过的最短时间是多少?”
于是想到发起这个活动,提高下论坛的活跃度(不知道具体结果如何,先发起着玩玩吧):
活动内容:通过编程(非纯数学计算)计算该题结果,编程语言不限,任何语言、脚本均可。
(注:看清楚要求,要编程实现,纯计算过程百度一下n多,就没技术竞赛的意义了)
活动要求:跟帖给出完整代码,需要有相对详细讲解过程的中文诠释。
关于此题的后续说明:
此题是要求通过编程来获得某个最优组合以得到最短时间,而不是仅仅用编程表示一下已知算法的排列,那样就失去此题锻炼编程思维的意义了。
此题是四个人过河,可以百度答案,也能很容易笔算出排列结果,但如果是5个、6个甚至更多的人呢?作为该题正确合理的编程,在原代码上稍做增加就应该能应用到更多的人数情况上。
需我的答案如下:
http://www.nb5.cn/thread-339002-10-1.html
code:
package
{
import flash.display.Sprite;
public class BridgeClassEx extends Sprite
{
//最大执行步数,限制超时返回
private var _maxTry:int = 1000;
//总通过时间
private var time:int = 0;
//船运作状态,true=过河 false=返回
private var _isGo:Boolean = true;
//尝试执行次数
private var _TryTimer:int = 0;
//人群,用时间去表示不同人的物点
private var Man:Array = new Array();
//在桥左边队列的人群,即系表示没有过桥的队伍
private var _leftMan:Array = [];
//在桥右边队列的人群,即系表示已过桥的队伍
private var _rightMan:Array = [];
//人数
private var CountMan:int=0;
//队伍全排列二维数组
private var AllArray:Array =[];
//记录,在不同排列下得到的结果
private var record:Array = [];
//构造函数
public function BridgeClassEx ():void
{
//初始化给人群付上时间,扩展更多人物,可以给下面数组传值
//如果多一个老人,要十分钟才可以过桥,则 Man = [1,2,5,7,10];
Man = [1,2,5,7];
CountMan = Man.length;
if (CountMan == 1)
{
trace ("SB,还用计算吗?");
trace ("完成任务,共用时:"+ Man[0]);
return;
}
AllArray = ArraySort (Man);
trace ("完成编排,共有组"+AllArray.length+"不同新排列");
parent:
for (var item:int =0; item < AllArray.length; item++)
{
trace ("现在执行的排列"+item+":"+AllArray[item]);
private var _leftMan:Array = [];
//在桥右边队列的人群,即系表示已过桥的队伍
private var _rightMan:Array = [];
//人数
private var CountMan:int=0;
//队伍全排列二维数组
private var AllArray:Array =[];
//记录,在不同排列下得到的结果
private var record:Array = [];
//构造函数
public function BridgeClassEx ():void
{
//初始化给人群付上时间,扩展更多人物,可以给下面数组传值
//如果多一个老人,要十分钟才可以过桥,则 Man = [1,2,5,7,10];
Man = [1,2,5,7];
CountMan = Man.length;
if (CountMan == 1)
{
trace ("SB,还用计算吗?");
trace ("完成任务,共用时:"+ Man[0]);
return;
}
AllArray = ArraySort (Man);
trace ("完成编排,共有组"+AllArray.length+"不同新排列");
parent:
for (var item:int =0; item < AllArray.length; item++)
{
trace ("现在执行的排列"+item+":"+AllArray[item]);
剩余6页未读,继续阅读
资源评论
- 天下界2014-01-06谢谢楼主了,可惜不是我要的代码,只是类型
Akiliang
- 粉丝: 5
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功