给定一种均匀随机选择0到1之间的实数的方法,你将如何使用这个随机数生成器在G
个边n
中随机选择边缘。
我知道您可以使用随机数生成器创建随机图G
,但我很困惑,可以修改它以在特定图G
中选择随机边。
另一个问题浮现在脑海中。鉴于图G
现已加权,该算法将如何变化。我想现在权重会对选择的边缘产生更大的影响,但是它会改变算法的数量
任何见解?
答案 0 :(得分:0)
对于未加权图,假设边存储在列表中,您可以简单地在1
和n
之间生成一个统一的随机整数。大多数库(在任何编程语言中)将具有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}},然后它位于第二个区间,所以选择第二个边缘。