以一定概率为变量赋值

时间:2016-04-22 15:24:22

标签: java probability

我用以下方式编写了一个函数:

public static double acceptance(double E1, double E2, int t) {
      return exp((E1 - E2) / t);   
}

现在假设我想将一个值分配给变量x,概率为exp((E1-E2)/t)

所以,为了做到这一点,我将要做什么?如果按以下方式写:

if(acceptance(double E1, double E2, int t) > Math.random())  // E1,E2 and t have certain values
    x = value;

它是正确的还是我必须做出任何改变?

2 个答案:

答案 0 :(得分:1)

是的,如果Math.random()始终在0-1范围内,它应该可以工作 但是我会切换值以使其更具可读性。 E.g:

if(Math.random() < acceptance(...)) {...}

答案 1 :(得分:0)

看起来应该是&#34;&lt;&#34;而不是&#34;&gt;&#34;,假设E1,E2和t总是给你exp((E1 - E2)/ t)在[0.0,1.0)范围内