Эффективное вычисление векторных комбинаций

Я работаю над исследовательской проблемой из любопытства и не знаю, как запрограммировать логику, которую я задумал. Позвольте мне объяснить вам это:

У меня четыре вектора, например,

v1 = 1 1 1 1
v2 = 2 2 2 2
v3 = 3 3 3 3
v4 = 4 4 4 4

Теперь я хочу добавить их в комбинации, то есть

v12 = v1+v2
v13 = v1+v3
v14 = v1+v4
v23 = v2+v3
v24 = v2+v4
v34 = v3+v4

До этого шага все в порядке. . Проблема в том, что теперь я хочу добавить к каждому из этих векторов один вектор из v1, v2, v3, v4, который он раньше не добавлял. Например:

v3 и v4 не были добавлены в v12, поэтому я хочу создать v123 и v124. Аналогично для всех векторов, таких как,

v12 should become:
v123 = v12+v3
v124 = v12+v4

v13 should become:
v132 // This should not occur because I already have v123
v134

v14 should become:
v142 // Cannot occur because I've v124 already
v143 // Cannot occur

v23 should become:
v231 // Cannot occur
v234 ... and so on.

. Важно, чтобы я не делал все за один шаг в начале. Например, я могу сделать (4 выбрать 3) 4C3 и закончить его, но я хочу делать это шаг за шагом на каждой итерации.

Как мне это запрограммировать?

PS: Я ' m пытается работать над модифицированной версией априорного алгоритма интеллектуального анализа данных.

7
задан Peter Mortensen 29 May 2014 в 11:32
поделиться