zoukankan      html  css  js  c++  java
  • 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++;
            }
        }
    }


  • 相关阅读:
    xml和web Server以及Remoting
    web窗体的基本控件
    迭代器
    .net 细节问题
    Linq笔记
    .net基础概念理解
    Gridview 和DetailsView FormView细节注意
    .net 基础学习(vs2008 3.5框架)
    一、多线程基础
    CentOS 7和SpringBoot下的Redis配置
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9854815.html
Copyright © 2011-2022 走看看