计算数字列表的百分比

时间:2017-02-13 18:47:52

标签: java algorithm math percentage calculus

我有一个整数值列表(正数和负数)。我需要计算每个值的百分比。 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%

3 个答案:

答案 0 :(得分:1)

您不需要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

答案 1 :(得分:0)

不需要API /外部类。你可以制作一个方法。这里有一些基本的伪代码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;
}

答案 2 :(得分:0)

我不确定您是否要求在排序或值之后根据索引进行规范化。但我认为基于价值更有意义。例如,如果您的数组为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;