Расчет расстояния дотпродукта в Java
Что мне нужно сделать, так это рассчитать расстояние между точками и рейтингом двух клиентов. Рейтинги клиентов записываются в хэш-карту.
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
}
А вот другая деталь, приведенная на RatingsAnalysis
учебный класс
//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;
1 ответ
Предположительно, членское поле
private RatingsMap ratings;
в RatingsAnalysis
это Map
имен => рейтинги. Ваша задача в distance
метод это:
- Посмотрите рейтинг для
name1
а такжеname2
и сохранить их в локальных переменных (подсказка: используйтеget
метод, определенный наMap
интерфейс) - Выполните точечный анализ продуктов по этим двум оценкам, которые вы получили выше. Вы либо знаете, как это сделать, либо вам необходимо предоставить больше информации о его значении для
Rating
в этом вопросе. - Вернуть результат
Как примечание, 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 ....
}
}