Как создать случайное целое число n
в Java, между 1
и k
с "линейным нисходящим распределением", т.е. 1
, скорее всего, 2
менее вероятно, 3
менее вероятно,..., k
наименее вероятно, а вероятности спускаются линейно, например:
Я знаю, что уже есть домены потоков в этой теме, и я приношу свои извинения за создание нового, но я, похоже, не могу создать то, что мне нужно от них. Я знаю, что используя import java.util.*;
, код
Random r=new Random();
int n=r.nextInt(k)+1;
создает случайное целое число между 1
и k
, распределенное равномерно.
GENERALIZATION: Любые подсказки для создания произвольно распределенного целого числа, то есть f(n)=some function
, P(n)=f(n)/(f(1)+...+f(k))
), также будут оценены, например:
.