计算数字列表的百分比

Calculate percentage for list of numbers

我有一个整数值列表(正数和负数)。我需要计算每个值的百分比。 Java里面有没有API可以实现的?

示例 1 -

10, 40, 60, -15, -25, 30, -10, -50, 120

-50 (lowest value) - 0% -25 - ? -15 - ? -10 - ? 10 - ? 120 (highest value) - 100%

示例 2 -

90、45、13、-89、-95、-150、200、250、67

-150(最低值)- 0% -95 - ? -89 - ? 13 - ? 250(最高值)- 100%

不需要 API / 外部 class。你可以做一个方法。这里有一些基本的 pseudocode-esk java 可以帮助您入门

public int average (arraylist a or int[] a){
    int r = 0;
    for (int i = 0; i< a.length or a.size(); i++){
        r+= a[i] or r+= a.get(i);
    }
    r = (r/a.length) or (r/a.size());
    return r;
}

为此您不需要 API,只需将数字存储在一个数组中,对其进行排序,然后得到百分比,如下所示:

int []array = new int[n];
//insert numbers in the list
Arrays.sort();

假设您需要找到给定数字 'x' 的百分比,然后执行此操作:

int index = ArrayUtils.indexOf(array, x);
int percentage = ((double)(index + 1)/n)*100

我不确定您是要求根据排序后的索引还是值进行归一化。但我认为基于价值更有意义。例如,如果您的数组是 0, 1, 10,则最终百分比将为 0->0%, 1->10%, 10->100%

为此,您基本上会进行归一化。

我不记得确切的语法,但如果有任何语法错误,请更正。

int arr[] = {10, 40, 60, -15, -25, 30, -10, -50};

List b = Arrays.asList(ArrayUtils.toObject(arr));

int mn = Collections.min(b);
int mx = Collections.max(b);

int perc_arr = new int[arr.length];
for(int i = 0; i < arr.length; i++)
     perc_arr[i] = (arr[i]-mn)/(mx-mn)*100;