/// <summary>
    /// 随机生成连接,返回令并查集中只剩一个连通分量所需的连接总数。
    /// </summary>
    /// <param name="uf">用于测试的并查集。</param>
    /// <returns>需要的连接总数。</returns>
    public static int Count(Uf uf)
    {
        var random = new Random();
        var size   = uf.Count();
        var edges  = 0;

        while (uf.Count() > 1)
        {
            var p = random.Next(size);
            var q = random.Next(size);
            uf.Union(p, q);
            edges++;
        }

        return(edges);
    }