2012-05-24 6 views
0

내가해야 할 일은 두 고객의 평점 사이의 내적 거리를 계산하는 것입니다. 고객의 등급은 해시 맵에 기록됩니다.자바에서 dotproduct 거리 계산

private HashMap<String,int[]> ratingmap; 

해시 맵의 핵심은 고객의 이름이며, 해당 고객의 평가 (책의 자신의 등급은) 함께있는 관련

내가 이것을 어떻게 할 것인가? 여기

/** 
* calculate dot product distance between the ratings of two customers 
* @param name1 String name of customer 
* @param name2 String name of customer 
* @return int distance or ILLEGAL_INPUT if name1 or name2 are not customers 
*/ 
public int distance(String name1, String name2) 
{ 
    return 0; //replace with code 
} 

그리고

RatingsAnalysisRatingsAnalysis 클래스 아마도

//collection of rated book titles 
private BookList books; 
//collection of customers and their ratings 
private RatingsMap ratings; 
//use a list of customer names from the ratings map for looping through the map 
private ArrayList<String> customernames; 
+4

하세요 이 문맥에서 "내적 거리"를 정의하십시오. –

+0

내적 거리는 두 고객의 등급이 '밀접하게'어떻게 관련되어 있는지를 나타냅니다. 각 고객이 책에 등급을 매기는 것과 같이 내가 볼 수있는 것은 등급이 얼마나 가까운지를 묻는 것입니다. 즉 – Danial

+0

이 문맥에 어떤 계산이 포함되는지는 분명하지 않습니다. 질문을 편집하여 수행 할 계산의 예를 제공하십시오. –

답변

0

멤버 필드

private RatingsMap ratings; 

에서 주어진 세부 사항 중 다른 비트 이름 => 등급의 Map이다. distance 방법에서 당신의 임무는 이것이다 :

  1. name1name2에 대한 평가를 검색하고 지역 변수에 저장 (힌트 다음 Map 인터페이스에 정의 된 get 방법 사용) 점을 수행
  2. 을 당신이 위에서 얻은이 두 등급에 대한 제품 분석. 이 질문에 Rating과 관련하여이 작업을 수행하는 방법을 알고 있거나 해당 의미에 대한 자세한 정보를 제공해야합니다.
  3. 돌아 보조 노트로 결과

가의 RatingsMap가 더 강력하게 입력해야 할 수 있습니다

private RatingsMap<String, Rating> ratings; 

편집은 : 골격 코드가 요구 된 추가 ...

public int distance(String name1, String name2) 
{ 
    Rating r1 = this.ratings.get(name1); 
    Rating r2 = this.ratings.get(name2); 

    if(r1 != null && r2 != null) { 
     return .... 
    } 
} 
+0

예, 논리적으로 들리며, 이것을 수행하는 방법에 대해 걷는 해골 코드를 얻을 수 있습니까? 그럴 수는 없습니다. – Danial

+0

고마워요. 이것과 다시 당신에게 :) – Danial

+0

'Rating'word가 등급 r1에서 작동하지 않으며 등급 r2에서 "등급"이라는 단어로 대체 할 수 있습니까?죄송합니다. 정말 쓸모가 없습니다. – Danial