1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
//mon main consiste à tester pour les 2 users(1 et2) et l'article255
public static void main(String[] args) throws Exception {
MaClasse test = new MaClasse();
Data dSet = new Data();
dSet.ParseFile();
System.out.println(test.calculP(1,2,255, dSet));
}
//dSet-->après le parsing d'un fichier
public double CalculP(int userID, int otherUserID, int articleID, Data dSet) {
double somme1 = 0;
double somme2 = 0;
double k2 = 0;
int numberArticles = 0;
double formule1 = 0.0;
HashMap allArticlesUser1 = dSet.getArticles(userID);
HashMap allArticlesUserN = dSet.getArticles(NuserID);
double moyennePrixUser1 = calculMoyenne(allArticlesUser1);
//je regarde les achats en commun
for (Iterator it = allArticlesUser1.keySet().iterator(); it.hasNext();){
Integer articleKeyUser1 = (Integer)it.next();
if (allArticlesUserN.containsKey(articleKeyUser1)){
numberArticles++;
}
if (numberArticles>0){
double SommeArticlesCommuns = Amax(userID, otherUserID);
double SommeArticleU1U2 = getArticlesU1U2 (userID, otherUserID, dSet);
//Nbr maxi des achats communs
double Kx = Amax (userID, otherUserID);
formule1 = Kx*SommeArticlesCommuns/SommeArticleU1U2;
}
for (int i = 0; i < UsersCount(); i++) {
if (getPrice(i, articleID) != 0) {
somme1 += formule1 * (getPrice(i, articleID) - moyennePrixUser1);
somme2 += Math.abs(formule1);
}
}
double k = 1 / somme2;
k2 = moyennePrixUser1 + k * somme1;
System.out.println("valeur:" +k2);
}
return k2;
} |