Итак, я ищу способ получить возможные комбинации двух целых чисел из массива, скажем, у меня есть
v = [0, 1, 2, 0, 4]
В конце я хотел бы получить концептуальную матрицу, подобную этой: C = v ^ T v, где v ^ T - транспонирование вектора, поэтому вы получите матрицу с несколькими ненулевыми значениями, а записи будут представлять собой комбинации двух целых чисел. , Например, для строки 1:
(0,0) (1,1) (1,2) (0,0) (0,4)
но мне нужно только (1,1) (1,2), и аналогичные рассуждения верны и для других строк в моей концептуальной матричной визуализации. Я могу сделать это с помощью двух вложенных циклов, проверив, содержат ли они 0 или нет. Вопрос в том, существуют ли какие-нибудь алгоритмы для такого рода комбинаторных задач, которые справились бы с этим лучше, чем вложенные циклы?