Java实现百分位数法
时间: 2023-11-13 21:31:39 浏览: 47
可以使用Java中的Arrays类,使用sort()方法对数组进行排序,再使用percentile()方法计算百分位数。具体实现方式可以参考以下代码:
import java.util.Arrays;
public class PercentileExample {
public static void main(String[] args) {
double[] arr = {10, 23, 15, 7, 30, 45, 60, 80, 90};
Arrays.sort(arr);
double percentile = 75;
double result = calculatePercentile(arr, percentile);
System.out.println(percentile + "th percentile is " + result);
}
public static double calculatePercentile(double[] arr, double percentile) {
int index = (int) Math.ceil(percentile / 100 * arr.length);
return arr[index-1];
}
}
输出结果为:
75th percentile is 60.0
相关问题
postgresql 百分位数
在 PostgreSQL 中,你可以使用 PERCENTILE_CONT 或 PERCENTILE_DISC 函数来计算百分位数。
例如,要计算一个表中某一列的第50个百分位数,可以使用以下语句:
```
SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY column_name) FROM table_name;
```
这将返回该列的中位数。你也可以将第一个参数设置为其他值,以计算不同的百分位数。
PERCENTILE_CONT 函数会使用连续内插法来计算百分位数,而 PERCENTILE_DISC 函数会使用离散内插法。它们的主要区别是当要计算的百分位数在数据集中不存在时的处理方式。PERCENTILE_CONT 函数会对不存在的值进行内插计算,而 PERCENTILE_DISC 函数则会返回最接近的离散值。
例如,以下语句将使用 PERCENTILE_CONT 函数计算某一列的第90个百分位数:
```
SELECT PERCENTILE_CONT(0.9) WITHIN GROUP (ORDER BY column_name) FROM table_name;
```
如果该列中不存在第90个百分位数,则 PERCENTILE_CONT 函数将计算出一个近似值。如果你希望使用 PERCENTILE_DISC 函数来计算百分位数,只需将函数名从 PERCENTILE_CONT 改为 PERCENTILE_DISC 即可。
oracle 百分位数
Oracle 中可以使用 PERCENTILE_CONT 或 PERCENTILE_DISC 函数来计算百分位数。
PERCENTILE_CONT 函数用于计算连续分布的百分位数,它返回一个数值,表示在一组数据中的指定百分位数所对应的值。语法如下:
```
PERCENTILE_CONT(percent) WITHIN GROUP (ORDER BY expr)
```
其中,percent 参数指定要计算的百分位数,取值范围为 0 到 1。expr 参数指定要计算的数据列或表达式。
例如,要计算某个表中 salary 列的中位数,可以使用以下语句:
```
SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY salary) "Median"
FROM employees;
```
PERCENTILE_DISC 函数用于计算离散分布的百分位数,它返回一个数值,表示在一组数据中的指定百分位数所对应的最靠近的实际值。语法如下:
```
PERCENTILE_DISC(percent) WITHIN GROUP (ORDER BY expr)
```
参数含义与 PERCENTILE_CONT 相同。
例如,要计算某个表中 salary 列的第 75 个百分位数,可以使用以下语句:
```
SELECT PERCENTILE_DISC(0.75) WITHIN GROUP (ORDER BY salary) "75th Percentile"
FROM employees;
```