2017-02-13 5 views
-2

J'ai une liste de valeurs entières (positive et négative). J'ai besoin de calculer le pourcentage de chaque valeur. Existe-t-il une API en Java pour y parvenir?Calculer le pourcentage pour la liste des nombres

Exemple 1 -

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

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

Exemple 2 -

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

-150 (valeur la plus basse) - 0% -95 -? -89 -? 13 -? 250 (valeur la plus élevée) - 100%

+0

Ce que vous demandez n'est pas clair. Fournissez plusieurs exemples d'entrée et la sortie attendue dans chaque cas. –

+0

Le pourcentage reflète un ratio de 95% = 95/100 et est généralement limité [0, 100]. Le pourcentage négatif et les valeurs> 100 n'ont généralement pas de sens, à moins que vous ne fournissiez une base ou un changement relatif: 120% de la valeur d'origine, -25% de changement, etc. Pourriez-vous clarifier la base du calcul? Qu'essayez-vous d'accomplir avec cela? – artdanil

Répondre

0

Je ne sais pas si vous demandez la normalisation en fonction de l'indice après triage ou le Valu e. Mais je pense que basé sur la valeur a plus de sens. Par exemple, si votre tableau est 0, 1, 10, les pourcentages finaux seront 0->0%, 1->10%, 10->100%

Pour cela, vous effectuerez une normalisation.

Je ne me souviens pas de la syntaxe exacte, mais je la corrige si la syntaxe est incorrecte.

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

Il n'y a pas besoin d'API/classe externe. Vous pouvez faire une méthode. Voici quelques-ESK java pseudocode de base pour vous aider à démarrer

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

Vous n'avez pas besoin d'une API pour cela, il suffit de stocker les chiffres dans un tableau, les trier, et obtenir le pourcentage comme suit:

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

Supposons que vous devez trouver le pourcentage d'un nombre donné 'x', faites ceci:

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