我需要从图中选择随机顶点或边。我目前正在使用蓝图 API 来查询图形。从我的图中随机选择一个顶点或一条边的最佳方法是什么?
问问题
761 次
1 回答
0
假设您不知道图中的所有元素,您可以使用getVertices()或getEdges()从图中检索所有顶点/边。
但是既然你从这些方法中得到了一个迭代器,那么实际的问题是,如何从迭代器中选择一个随机元素。
有两种方法可以解决这个问题。
- 遍历所有元素并将它们存储在一个数组或列表中,并根据集合的大小选择一个随机元素,或者
- 在迭代元素时使用Reservoir 采样。
如果您使用Gremlin Pipeline ,还有另一种方法可以解决此问题,根据您的标签执行查询,使用来自 gremlin 的随机过滤器并选择第一个顶点。
于 2013-12-23T22:13:20.177 回答