2017-02-13 35 views
-2

У меня есть список целых значений (положительных и отрицательных). Мне нужно рассчитать процент от каждого значения. Есть ли какой-либо API в Java для достижения этого?0 Вычислить процент для списка цифр

Пример 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%

+0

Непонятно, о чем вы просите. Приведите несколько примеров ввода и ожидаемого результата в каждом случае. –

+0

Процент отражает соотношение 95% = 95/100 и обычно ограничен [0, 100]. Отрицательные проценты и значения> 100 обычно не имеют смысла, если вы не предоставите базу или не отразите относительное изменение: 120% от первоначального значения, -25% изменения и т. Д. Не могли бы вы пояснить основы для расчета? Что вы пытаетесь достичь с этим? – artdanil

ответ

0

Я не уверен, если вы просите нормализующее на основе индекса после сортировки или в VALU е. Но я думаю, что основанный на значении имеет больше смысла. Например, если ваш массив равен 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; 
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; 
} 
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