5只蚂蚁走木棍问题的递归解法(java实现)

5只蚂蚁走木棍问题的递归解法(java实现)

ID:14157163

大小:48.00 KB

页数:7页

时间:2018-07-26

5只蚂蚁走木棍问题的递归解法(java实现)_第1页
5只蚂蚁走木棍问题的递归解法(java实现)_第2页
5只蚂蚁走木棍问题的递归解法(java实现)_第3页
5只蚂蚁走木棍问题的递归解法(java实现)_第4页
5只蚂蚁走木棍问题的递归解法(java实现)_第5页
资源描述:

《5只蚂蚁走木棍问题的递归解法(java实现)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、题目描述:   有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。   在网上无意间看到这个小问题,觉得挺有趣的,自己分析后给出了递归方法来处理它算法思想、步骤都在code的注释里有所解释Java代码1.package com.leochan;  

2、2.  3.import java.util.LinkedList;  4.  5.public class RecursionAntWalker {  6.  7.    public static int spendTime = 0;  8.  9.    public static int totalLength = 27;  10.  11.    public static void main(String[] args) {  12.  13.        recursionTest();  14.  15.    } 

3、 16.  17.    // 递归计算32种不同情况下所需要的时间。  1.    private static void recursionTest() {  2.        int count = 0;  3.        for (int d1 = -1; d1 <= 1; d1 += 2) {  4.            for (int d2 = -1; d2 <= 1; d2 += 2) {  5.                for (int d3 = -1; d3 <= 1; d3 += 2) {  6. 

4、                   for (int d4 = -1; d4 <= 1; d4 += 2) {  7.                        for (int d5 = -1; d5 <= 1; d5 += 2) {  8.                            count++;  9.                            spendTime = 0;  10.                            Ant a = new Ant(3);  11.      

5、                      Ant b = new Ant(7);  12.                            Ant c = new Ant(11);  13.                            Ant d = new Ant(17);  14.                            Ant e = new Ant(23);  15.                            a.direction = d1;  16.               

6、             b.direction = d2;  17.                            c.direction = d3;  18.                            d.direction = d4;  1.                            e.direction = d5;  2.  3.                            LinkedList testCase = new LinkedList();  4.  

7、5.                            testCase.add(a);  6.                            testCase.add(b);  7.                            testCase.add(c);  8.                            testCase.add(d);  9.                            testCase.add(e);  10.  11.                      

8、      System.out.print("count=" + count + " d1=" + d1  12.                                    + " d2=" + d2 + 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。