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