• Algs4- 1.5.18随机网格生成器-(未读懂题)


    1.5.18随机网格生成器。编写一个程序RandomGrid,从命令行接受一个int值N,生成一个NXN的网格中的所有连接。它们的排列随机且方向随机(即(p q)和(q p)出现的可能性是相等的),将这个结果打印到标准输出中。可以使用RandomBag将所有连接随机排列(请见练习1.3.34),并使用如右下所示的Connection嵌套类来将p和q封装到一个对象中。将程序打包成两个静态方法:generate(),接受参数N并返回一个连接的数组;main(),从命令行接受参数N,调用generate(),遍历返回的数组并打印出所有连接。
    答:感觉没有完全读懂题。
    public class RandomGrid
    {
        public static class Connection
        {
            int p;
            int q;
            public Connection(int p,int q)
            {this.p=p; this.q=q;}
           
            public int P()
            {return p;}
       
            public int Q()
            {return q;}
        }
        public static Connection[] generate(int N)
        {
            UF uf=new UF(N*N);
            Bag<Connection> bagOfConn=new Bag<Connection>();
             while (uf.count()>1)
               {
                   int p=StdRandom.uniform(N*N);
                   int q=StdRandom.uniform(N*N);
                   if(uf.connected(p,q)) continue;
                   uf.union(p,q);
                    bagOfConn.add(new Connection(p,q));
                }//end while
            Connection[] conns=new Connection[bagOfConn.size()];
            int i=0;
            for (Connection item:bagOfConn)
            {
                conns[i]=item;
                i++;
            }
            return conns;
        }
       

        public static void main(String[] args)
        {
            int N=Integer.parseInt(args[0]);
            Connection[] conn=generate(N);
            //
            int i=0;
            while (i<conn.length)
            {
                StdOut.printf("p=%-6d q=%-6d ",conn[i].P(),conn[i].Q());
                //
                i++;
            }
        }
    }


  • 相关阅读:
    【正则表达式】正则表达式基础语法
    【JavaWeb】实现二级联动菜单
    【JavaWeb】jQuery对Ajax的支持
    MySQL复习值代码知识点(2)
    easyUI+servlet+mysql项目总结
    Android环境配置(Eclipse全开发环境下载)
    jsp+servlet+mysql简单实现用户登陆注册
    java的异常抛出throws和throw的简单使用
    关于Java的多线程Runnable的个人理解(基础,不讲概念)
    Eclipse中代码自动添加注释及代码注释模板
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9854815.html
Copyright © 2020-2023  润新知