Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 如何计算期望值_Algorithm_Probability - Fatal编程技术网

Algorithm 如何计算期望值

Algorithm 如何计算期望值,algorithm,probability,Algorithm,Probability,我陷入了一个期望值的问题 我得到了一个具有不同连通分量的无向图。第i个组件中有x[i]个元素。给出了连接组件的数量和集合x。选择一个节点后,将标记连接到该节点的所有节点 So overall we have to do something like this: 1. Pick any node which is not marked. 2. Mark all the nodes of the connected component, which contains node chosen in s

我陷入了一个期望值的问题

我得到了一个具有不同连通分量的无向图。第i个组件中有x[i]个元素。给出了连接组件的数量和集合x。选择一个节点后,将标记连接到该节点的所有节点

So overall we have to do something like this:
1. Pick any node which is not marked.
2. Mark all the nodes of the connected component, which contains node chosen in step 1.
repeat process 1, 2 until you mark a specific code.
在标记所需节点之前,我们必须做出的选择数量的期望值是多少


我可以用蛮力计算期望值,但是有没有其他有效的方法来计算它

如果在目标分量之前选择第i个分量(否则为零),则将
U_i
设为等于1的随机变量

因此,选择的数量由
sum U_i
给出。(如果第一次找到它,则可能+1算作1个选项)

所以这个随机变量的期望值是由期望的线性给出的

现在,
E(U_i)=0*p(U_i==0)+1*p(U_i==1)=p(U_i==1)
所以我们要做的就是计算在目标之前选择第i个分量的概率

第i个组件有x[i]个成员,而目标组件有x[t]个成员

重要的是,这些x[i]+x[t]节点中的哪一个是第一个随机选择的节点,因此有概率
x[i]/(x[i]+x[t])
第一个选择的节点位于组件i中

因此,我们得出结论:

P(U_i==1) = x[i]/(x[i]+x[t])

E(number of choices) = sum_(i != t) x[i]/(x[i]+x[t])

(可能+1,取决于问题定义)

如果在目标分量之前选择第i个分量,则将
U_i
设为等于1的随机变量(否则为零)

因此,选择的数量由
sum U_i
给出。(如果第一次找到它,则可能+1算作1个选项)

所以这个随机变量的期望值是由期望的线性给出的

现在,
E(U_i)=0*p(U_i==0)+1*p(U_i==1)=p(U_i==1)
所以我们要做的就是计算在目标之前选择第i个分量的概率

第i个组件有x[i]个成员,而目标组件有x[t]个成员

重要的是,这些x[i]+x[t]节点中的哪一个是第一个随机选择的节点,因此有概率
x[i]/(x[i]+x[t])
第一个选择的节点位于组件i中

因此,我们得出结论:

P(U_i==1) = x[i]/(x[i]+x[t])

E(number of choices) = sum_(i != t) x[i]/(x[i]+x[t])

(可能+1,具体取决于问题定义)

请澄清:当您在步骤2中说“所有连接到它的节点”时,是它的所有近邻,还是它组件中的所有节点?@ChrisBeck它组件中的所有节点。@user3518014您能建议您要执行此操作的步骤数吗,好让我知道你在考虑什么是暴力,什么是高效?@但丁。我在寻找线性解。但nlog(n)解决方案也适用于我。请澄清:当您在步骤2中说“连接到它的所有节点”时,是它的所有近邻,还是它的组件中的所有节点?@ChrisBeck它的组件中的所有节点。@user3518014您能建议执行此操作的步骤数吗,好让我知道你在考虑什么是暴力,什么是高效?@但丁。我在寻找线性解。但是nlog(n)解决方案也适用于我。谢谢你的解决方案@peterhanks的解决方案@Peter