Найти все комбинации -1 и 1 на заданную сумму - PullRequest
0 голосов
/ 05 июня 2018

Как найти все добавленные комбинации, обеспечивающие заданную сумму, учитывая тот факт, что возможные значения могут быть 1 или -1

Мне дан массив коэффициентов с переменной длиной (вв этом случае 3):

array: [-1 -1 2]
desired sum: [2]

поэтому мое вычисление будет выглядеть так:

-x-y+2z=2

output:

 result:[-1 1 1]

Как это можно сделать в Matlab?Я не уверен, как я могу сделать рекурсию.

Я думал сделать что-то похожее на отмычку

1 1 1 1

^

Двигайтесь отсюда и попробуйте все комбинации.Значения должны быть 1 или -1

1 Ответ

0 голосов
/ 05 июня 2018

Я бы сгенерировал все возможные последовательности, а затем проверил, соответствуют ли они результатам.Это должно быть быстрее и понятнее, чем рекурсия.

Теперь, как сгенерировать все возможные последовательности - получите подсказку из двоичных чисел.

Чтобы преобразовать текущее число в двоичное, а затем в массив (другие шагивам нужно должно быть достаточно ясно):

dec2bin(currentNumber, N); % N is the length of array.
arr = binNum(:) == '1';
matCoeff = -1 + 2 * arr; % This gives 1 on places with 1 and -1 on places with 0.
...