1.5.17随机连接。设计UF的一个用例 ErdosRenyi,从命令行接受一个整数N,在0到N-1之间产生随机整数对,调用connected()判断它们是否相连,如果不是则调用union()方法(和我们的开发用例一样)。不断循环直到所有触点均相互连通并打印出生成的连接总数。将你的程序打包成一个接受参数N并返回连接总数的静态方法count(),添加一个main()方法从命令行接受N,调用count()并打印它的返回值。
答:
public class ErdosRenyi
{
public static int count(int N)
{
int Times=0;
UF uf=new UF(N);
while (uf.count()>1)
{
int p=StdRandom.uniform(N);
int q=StdRandom.uniform(N);
Times++;
uf.union(p,q);
}//end while
return Times;
}
public static void main(String[] args)
{
int N=Integer.parseInt(args[0]);
StdOut.println("Times="+ErdosRenyi.count(N));
}
}