Дано n комбинаций кода длиной m. Как найти сумму по модулю 2 всевозможных комбинаций из n кодов. Результаты записать в массив
Например:
исходные комбинации
1. 1001001
2. 1101110
3. 0110001
4. 0101100
5. 0000111
нужно найти сумму по модулю 2 для всех комбинаций (исходные комбинации тоже могут входить в массив): "+" - сумма по модулю 2
1 = 1001001
2 = 1101110
3 = 0110001
4 = 0101100
5 = 0000111
1 + 2 = 0100111
1 + 3 = 1111001
....
2 + 3 = 1011111
2 + 4 = 1000010
....
1 + 2 + 3 + 4 + 5 = 0101001
1 + 2 + 3 + 4 = 0111000
1 + 2 + 3 = 0010110
.....
2 + 3 + 4 + 5 = 1110100
2 + 3 + 4 = 1110011
....
порядок суммирования не важен. Важно чтобы в выходном массиве была сумма всевозможных комбинаций . Целый день ломаю голову над задачей. Может кому-то уже встречалось?
Если я правильно задачу понял, то.
Чтобы перебрать все возможные комбинации для битов, нужно просто использовать счетчик
К примеру, есть входной массив в 5 значение 11001
Создать цикл от 0 до 2 в 5 степени. Теперь, каждое число нужно преобразовать в двоичное представление. Теперь в каждом месте, где встречается единица, соответствующий элемент входного массива необходимо сложить.
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String args[]) {
int[] input = {1, 1, 1, 1, 1, 1};
Map<String, Integer> output = new HashMap<>();
for (int i = 0; i < Math.pow(2,input.length); i++) {
String str = Integer.toBinaryString(i);
while (str.length()<input.length) str = "0" + str;
char[] bits = str.toCharArray();
int s =0;
for (int j = 0; j < bits.length; j++) {
if (bits[j] == '1') {
s = summ(s, input[j]);
}
}
output.put(Arrays.toString(bits), s);
}
for (Map.Entry<String,Integer> i : output.entrySet()) {
System.out.println(i.getKey() + " : "+ i.getValue());
}
}
private static int summ(int a, int b) {
int result = a + b;
if (result == 2) return 0;
return result;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Если да, то можете пожалуйста объяснить, как этот плагин установить на openserverУ меня он выдает ошибку: Использован некорректный синтаксис...
хочу обратиться к вам за помощьюКак убрать эти прозрачные отступы у шрифтов? Я обвел их красным цветов на скриншоте п
Передо мной стоит задача в текст добавлять различные иконкиЧерез какое View мне лучше всего это делать?
У меня есть django сервер, который должен по нажатия на кнопку send message отправлялось сообщение, а потом переходило в новое окно с надписью "отправлено"Но...