随机数发生器和图算法

时间:2013-04-10 03:50:35

标签: random graph

给定一种均匀随机选择0到1之间的实数的方法,你将如何使用这个随机数生成器在G个边n中随机选择边缘。 我知道您可以使用随机数生成器创建随机图G,但我很困惑,可以修改它以在特定图G中选择随机边。

另一个问题浮现在脑海中。鉴于图G现已加权,该算法将如何变化。我想现在权重会对选择的边缘产生更大的影响,但是它会改变算法的数量

任何见解?

1 个答案:

答案 0 :(得分:0)

对于未加权图,假设边存储在列表中,您可以简单地在1n之间生成一个统一的随机整数。大多数库(在任何编程语言中)将具有0和0之间的均匀随机数生成器。 1 u = U(0,1)

现在将(0,1)间隔统一划分为n个子间隔。对于来自1 to n-1的“k”,请检查(k/n, (k+1)/n) u下降的时间间隔k(0,1)是你的随机优势。

对于加权图,如果目标是根据其权重随机选择边(更高的权重意味着更有可能进行选择),则使用与上述相同的方法。但是根据权重u间隔划分为子间隔。最后生成k并选择(0,1)

例如:如果有3条边具有权重{1,2,3}。然后将(0,1/6)间隔除以该比例的3个子间隔。即:(1/6,1/2)(1/2,1)u。生成u=0.45并找到它所处的间隔。说{{1}},然后它位于第二个区间,所以选择第二个边缘。