我是否在Java中使用此代码正确计算概率?

时间:2013-01-31 20:29:37

标签: java probability

我试图计算在给定数量的期间后投资回报为正的总概率。已经有一段时间了,因为我已经完成了概率,所以我并不记得那么好。我做得对吗?我的数字相当低。

double totalProbPos = 1;
for (int i = 0; i < maxPeriods; i++) {
    totalProbPos *= (probPos / 100);
}
totalProbPos = round(totalProbPos);
System.out.println("\nThe probability that your investment will return positive after " + maxPeriods + " periods is: \n    " + totalProbPos + "%.");

其中:maxPeriods, probPos由用户提供。

2 个答案:

答案 0 :(得分:0)

totalProbPos *= (probPos / 100);

最好将其中一个操作数强制转换为双倍以避免integer divison问题(假设你关心小数点)

totalProbPos *= ((double)probPos / 100);

答案 1 :(得分:0)

我猜(强调“猜测”)解决这个问题的方法是尝试在结束时获得投资回报的概率分布。然后,您只需找到返回大于零的概率(即,从0到无穷大的概率密度的积分)。结束时返回的概率分布可能类似于高斯(正态)分布,或者它可能是离散状态的分布,如马尔可夫链所给出的。也许最初的问题陈述有一些信息可以帮助我们弄清楚该怎么做。