Как вернуть точно самое высокое значение с расстояния Хэмминга - PullRequest
0 голосов
/ 15 июня 2019

Я хочу вычислить расстояние Хэмминга для 2 разных битовых строк.

Я сделал большую часть кода на Java, но я не знаю, как мне вернуть наибольшее число (в данном случае 4).

Я сделал сравнение битов, используя XOR (^) между обеими последовательностями, а также попытался получить правильный ответ, используя циклы for, а затем System.out.println (Long.bitCount (code.get (y) ^ code.get (x)));

import java.util.List;

class Solution {

  public static long calculate(List<Long> code) {

    long sequenceX = Long.parseLong("00000000", 2);
    long sequenceY = Long.parseLong("10101010", 2);

    System.out.println(Long.bitCount(sequenceX ^ sequenceY));

    for (int x = 0; x < code.size(); x++) {
      code.get(x);

      for (int y = 0; y < code.size(); y++) {
        code.get(y);
        System.out.println(Long.bitCount(code.get(y) ^ code.get(x)));        
      }        
    }

    if (sequenceX == sequenceY){
      return 0;
    }

    return code.size();  
  }
}

Ожидаемый результат - 4, но я получаю список чисел в разделе консоли в диапазоне от 0 до 8.

1 Ответ

1 голос
/ 15 июня 2019

Пытался очистить некоторые несвязанные вещи:

public static long calculate(List<Long> code) {

    long sequenceX = Long.parseLong("00000000", 2);
    long sequenceY = Long.parseLong("10101010", 2);

    long answer = Long.bitCount(sequenceX ^ sequenceY);
    System.out.println("Done:  "+ answer);

    return answer;  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...