У меня есть два массиваCounting в двоичном рубин
[a0 b0 c0]
[a1 b1 c1]
Я хочу, чтобы рассчитать все возможные суммы между ними. Возможная сумма состоит всего из 1 элемента для каждого слота столбца. Например, возможно сумма
a0 + b1 + c1
или
a1 + b1 + c1
, но не a1 + a0 + b0 + c0
Другими словами, сумма в примере будет иметь 3 слота, каждый из которых содержит только один элемент из двух массивы. С моей точки зрения это выглядит как подсчет в двоичном формате, где каждый слот может принимать только 1 из двух чисел (0 или 1). Таким образом, в этом примере
000 означает, что все элементы в сумме поступают из первого массива
sum(000) = a0 + b0 + c0.
sum(111) = a1 + b1 + c1
sum(010) = a0 + b1 + c0
вы получите напоминание.
Я хотел бы знать, как я могу это сделать в рубине. Я думаю о сложном решении, где я рассчитываю в двоичной строке, и для каждого подсчета я выбираю правильные элементы из массивов. Поскольку я хочу все возможные комбинации (2^n), могу ли я закодировать это в одной строке или близко к этому?
Я знал, что есть лучший способ! –
и, по моему мнению, результат тоже в порядке с правом подсчета? начиная с 000, заканчивающегося на 111 – Crone
Да, это так. Каждый ранг увеличивается в свою очередь. – mudasobwa