将生成JAVA中具有5K顶点和D密度的随机大连通无向图。但是在随机V1和随机V2之间产生边缘需要花费很多时间。 我尝试从所有可能边缘的列表中删除创建的边缘,然后从剩余边缘中选择一个随机边缘,但同样需要花费很多时间。
您认为以随机方式为巨大连通图生成边缘的快速方法是什么?
答案 0 :(得分:0)
你有N = 5k的顶点数。你需要M =边数。它固定还是随机?如果是随机的,它是介于1和N * N之间的数字。只需从随机数发生器创建一个随机数。
然后在外观上生成M对随机数,每个0 <= P1且P2 <= N.每一对都是边缘。然后只需为配对添加重量。
答案 1 :(得分:0)
我能想到的最简单的解决方案(可能是作弊),就是循环遍历每个顶点,并从自身创建一条边到列表中的下一个顶点。这将满足连接的标准,然后您可以生成随机边,直到您满足所需的密度,方法是生成0和顶点列表长度之间的随机数,用于边的开始和结束并创建它。 / p>