【问题标题】:Generate a random boolean with given probability [duplicate]生成具有给定概率的随机布尔值
【发布时间】:2015-05-18 09:00:45
【问题描述】:

我正在编写 java 代码来解决模拟退火方法的问题。我需要一种方法来生成随机的true,只有概率为 exp(a/b),其中ab 是给定的参数。

谢谢。

【问题讨论】:

  • 你的意思是分布必须符合f = exp(a/b),f是密度函数,还是f = exp(a/b)是实际分布?
  • my source code:double acceptChance = Math.exp(-moveScoreDifference / temperature); if (random.nextDouble() < acceptChance) {...}

标签: java simulated-annealing stochastic


【解决方案1】:

假设a/b是返回true的百分比概率:

public boolean exp(double probabilityTrue)
{
    return Math.random() >= 1.0 - probabilityTrue;
}

【讨论】:

  • 如果您只使用probability_true,那么您可以删除probability_false 方法参数,并且返回语句可以缩短为return (Math.Random() * 100) > probability_true;,因为该语句的评估结果为真或假无论如何都会被退回。
  • @kstandell 我编辑了这个问题。正确的形式是 exp(a/b)。真实结果的概率是 exp(a/b)。但是,我可以为我的情况定制它。谢谢
猜你喜欢
  • 2014-10-06
  • 2012-12-04
  • 2011-03-07
  • 2020-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-06
相关资源
最近更新 更多