2次元配列を持ち、配列内の配列を比較してそれらの類似点を見つける必要があります。 1つの配列に1つの項目があり、別の項目に1つの項目がある場合は、その項目に1つの項目が追加されます。カウントは類似点を追跡します。カウントがこれまでの最高値であれば、それは最も類似していると見なされます。ブランクは、ブランクに最もよく似ています。2次元配列内での類似性の発見
double[][] ratingDB = {{4.0, 3.0, 3.0, 3.0, 3.0}, {3.0, 2.0, 3.0, 3.5, 3.0},
{4.0, 3.0, 4.0, 3.0, 3.0}, {3.0, 2.0, 3.0, 3.5, 3.0}, {3.0, 2.0, 3.0, 3.5, 3.0}};
String temp = null;
for (int i = 0; i < ratingDB.length; i++) {
for (int j = 1; j < ratingDB.length; j++) {
int maxCount = 0;
int count = 0;
for (int k = 0; k < ratingDB.length-1; k++) {
if (ratingDB[i][k] == ratingDB[j][k]) {
count++;
if (count >= maxCount) {
maxCount = count;
temp = "User_" + k;
}
}
}
}
System.out.println("User_" + i + " is most simlar to " + temp);
}
これは一般的な考え方です。しかし、私は適切な結果を得るためにstruglingだと私はそれを把握することはできません。
User_0 is most simlar to User_2
User_1 is most simlar to User_3
User_2 is most simlar to User_3
User_3 is most simlar to User_3
User_4 is most simlar to User_3
そして、私は必要な結果は次のとおりです:私はこのコードから取得していた結果ではある
user_0 most similar to user_2
user_1 most similar to user_4
user_2 most similar to user_0
user_3 most similar to user_4
user_4 most similar to user_3
を0に設定してください。 – CCC
@Jordan max変数とcount変数の位置を修正しました。今度は、配列が反復された後にリセットされます。 –