【问题标题】:With some known probability,set the value of a variable以某个已知的概率,设置一个变量的值
【发布时间】:2014-07-26 03:41:16
【问题描述】:

编辑:如果有人反对这个问题,请发表评论解释原因。
我在 Java 中实现了一种称为 Biased Voter Model 的算法,它模拟了社交网络用户的意见动态。
这里有一个特定的步骤需要我:

With probability pi , set x = q1 ; else with probability pi , set x = q2,and so on.

If the above step did not set x, then:
– With probability αi , set x = q0 ; and
– With probability 1 − αi set x = q, where
  q ∈ [q0 , q ∗ ] is chosen uniformly at random.

其中,pi 和 αi 是随机选择的,并且始终保持不变。 q1,q2...qn 是已知值。 'x' 是我需要设置的。并且 q* 是与 q0 具有最小距离(最近)的 q(i)。[注意:q0 不是数组的一部分,也是已知的]
但我不确定的是"With probability pi set x=q1" 是什么意思?
我试过这样实现它:

        pi=(double)Math.round(Math.random()*10)/10;//sets a random number approximated to one decimal place

        while(index<n){
        double j=(double)Math.round(Math.random()*10)/10;
        if(j>pi){
            index++; 
        }
        else{
            x=q[index];
                    break;
        }
         }

但这仅适用于第一部分。 q[] 包含 q1,q2...qn 并且对于每个索引,我都会生成一个随机数 j,如果它大于 pi,我会忽略该索引并继续下一个。

第二部分我用αi检查j。(以下只是一个伪代码,我没有在这里写所有内容)

double j=(double)Math.round(Math.random()*10)/10;
if(j<αi)
  {
   temp1=q0;
  }
 double j=(double)Math.round(Math.random()*10)/10;
  //randomly generate 'k' which takes on a value of either 0 or 1
 if(j<(1-αi){
   if(k==0)
        temp2=q0;

     else if(k==1)
              temp2=q*;

     }
   if(temp1==temp2)
        x=q0;
   else
         x=q*

我知道这个实现并不完全正确。我在逻辑上哪里出错了? “With probability pi set x=q1”这句话究竟是什么意思?
如需进一步参考,请查看this(第 7 页第 5 节)。

【问题讨论】:

    标签: java eclipse algorithm social-networking probability


    【解决方案1】:

    我想你可能想多了。

    1. 在程序开始时,在 0 和 1 之间随机选择 pi,因为 pi 是一个概率。

       Random random = new Random();
       double pi = random.nextDouble(); // Choose a number between 0 and 1.
      
    2. 以概率pi 设置x=q1。选择另一个介于 0 和 1 之间的随机数。如果该数字小于pi,则设置x = q1。否则,设置x = q。这是正确的,因为在 0 和 1 之间均匀选择的随机数小于pi 的概率正好等于pi

      double t = random.nextDouble();
      if (t < pi) x = q1;
      else x = q;
      

    【讨论】:

    • 感谢您的回答,但首先,对于 pi,我们必须设置 x=q1 或 q2 或... qn,这只是第一部分。第一部分并不是我真正陷入困境的地方,我需要知道的是我是否在第二部分的正确轨道上。
    猜你喜欢
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    相关资源
    最近更新 更多