Я занимаюсь разработкой программного обеспечения на Java, одной из его функций является вычисление совокупного распределения определенного значения в распределении.
Например: средний возраст вступления в брак в стране 28 лет (что является среднимв распределении), распределение, которое я использую, chi-square (class ChiSquaredDistribution)
со степенью свободы (3), так как оно напоминает возраст при распределении брака в реальном мире.
Моя цель: если пользователь введет свой возраст, результат будет приблизительным процентом их вступления в брак в этом возрасте (граница одного года) на основе этого распределения.что-то вроде: input : 30 years >>> output : 5.1%
, input : 28 years>>> output :6%
, input : 56 years>>> output :0.8%
.Входное значение int, выходное значение double
проблема в том, что распределение начинается с (0), а среднее значение, по-моему, (3) по умолчанию, следующий код, который я написал, отображает вероятность брака с возраста 0до 70, мой вопрос заключается в том, как сдвинуть его к 18 и более, со средним значением среднего возраста вступления в брак?
ChiSquaredDistribution x = new ChiSquaredDistribution(3);
Random r = new Random();
for (int UserAtAge=0; UserAtAge<70; UserAtAge++) {
System.out.println((x.cumulativeProbability(UserAtAge+1)-x.cumulativeProbability(UserAtAge))*100);
}
Два изображения прилагаются для текущих результатов и ожидаемых результатов.Любой код и помощь будут высоко оценены.
См. текущие результаты и желаемые результаты