gpt4 book ai didi

java - 用Java实现概率分布函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:15:05 25 4
gpt4 key购买 nike

我正在尝试在 java 中实现一个概率分布函数,它返回 i<sup>th</sup>以概率进入数组:

F<sub>i</sub> = 6i(n-i) / (n<sup>3</sup> - n)

哪里n是数组长度,即对于长度为 4 的数组:

P<sub>1</sub> = 3/10, P<sub>2</sub> = 4/10, P<sub>3</sub> = 3/10, P<sub>4</sub> = 0

请注意,此函数假定编号从 1 到 n而不是 0 到 n-1就像在 Java 中一样。

目前我只是使用均匀分布即

 int i = (int)(Math.random()*((arraySize)-1));

使用 -1,因此它不会选择最后一个元素(即 Pn = 0,如上式所示)。

有人对实现这个有任何想法或提示吗?

最佳答案

double rand = Math.random(); // generate a random number in [0,1]
F=0;
// you test if rand is in [F(1)+..+F(i):F(1)+..+F(i)+F(i+1)] it is in this rnge with proba P(i) and therefore if it is in this range you return i
for (int i=1,i<array.size();i++ ){
F+=F(i);
if rand < F
return i;
}
return array.size(); // you went through all the array then rand==1 (this probability is null) and you return n

关于java - 用Java实现概率分布函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6557318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com