2010-11-22 4 views
0

Je voudrais déterminer le rapport de combien de fois un CostCentre apparaît dans cet actifjava: déterminer le rapport, à partir de plusieurs entrées et en double entrée

pourrait être plus facile de montrer que d'expliquer

fichier d'entrée

asset_id|employee_id|costcentre_id 

1|123|2 

1|342|2 

1|122|3 

2|231|4 

2|232|3 

qui doit retourner

asset_id|employee_id|ratio 

1 | 2 | 1        //because more than 50% of 1 was allocated to 2 

2 | 4 | 0.5        //because not more than 50% ... 

2 | 3 | 0.5        //because not more than 50% ... 

Bien sûr, l'entrée semble bien pire que ça, imaginez. . .

5|503|18 

5|742|18 

5|861|18 

5|408|18 

5|330|18 

5|440|18 

5|102|18 

23|418|5 

26|723|70 

26|466|89 

26|376|85 

26|839|89 

28|811|189 

28|1224|244 

28|302|72 

28|348|244 

29|229|47 

31|655|80 

44|250|10 

44|729|81 

44|867|10 

44|960|81 

44|973|81 //just a small piece of the input file 

Il devra déterminer le nombre de fois la asset_id est là, alors il obtiendra des valeurs pour chacun et déterminer s'il y avait plus de 50% attribué à un CostCentre, lui donner un rapport de 1 et de sortie résultats de cette entrée.

si elle ne dispose pas de plus de 50% des id CostCenter de qui sont les mêmes, il faut diviser le rapport comment le rapport de formule = (nombre de fois son nombre il/de comptage d'autres temps)

Répondre

0
  1. Traitez votre entrée et stocker pour asset_id toutes les combinaisons de costcentre_id dans une liste
  2. Trier la liste pour chaque asset_id et si la valeur moyenne est égale à la première puis d'utiliser un rapport de 1.
  3. liste Sinon, chaque costcentre_id et asset_id et le total occurrences de cette combinaison sur l'ensemble des occurrences de cet asset_id
+0

en ce qui concerne # 2 ce qui se passe quand theres seulement 4 entrées, qui est le milieu? et # 3 je figure c'est la bonne logique que vous avez là mais comment le coder en Java, toute aide serait appréciée – Jaques

+0

Puisque vous voulez plus de 50%, si la taille de la liste est un nombre pair alors le "milieu "un pour vous serait taille/2 + 1. – jzd

Questions connexes