Реализация функции распределения вероятностей в Java

Я пытаюсь реализовать функцию распределения вероятностей в java, где она возвращает запись i th в массив с вероятностью:

F i = 6i (ni) / (n 3 - n)

, где n - длина массива, т.е. для длина массива 4:

P 1 = 3/10, P 2 = 4/10, P 3 = 3/10, P ] 4 = 0

Обратите внимание, что эта функция предполагает нумерацию от 1 до n , а не от 0 до n-1 , как в Java.

На данный момент я ' m просто используя равномерное распределение, то есть

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

с -1, поэтому он не выбирает последний элемент (например, P n = 0, как в приведенном выше формулу).

У кого-нибудь есть идеи или советы по реализации этого?

6
задан Bart Kiers 2 July 2011 в 13:44
поделиться