У меня верхняя треугольная часть матрицы с основной диагональю, хранящейся в виде линейного массива, как можно отличить индексы (i, j) матричного элемента от линейного индекс массива?Предоставление элемента из нижней/верхней треугольной матрицы
Например линейный массив: [a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10]
является для хранения матрицы
a0 a1 a2 a3
0 a4 a5 a6
0 0 a7 a8
0 0 0 a10
Я нашел решение этой проблемы, но без главной диагонали, которая:
index = (n*(n-1)/2) - (n-i)*((n-i)-1)/2 + j - i - 1
И решения для та же проблема, но для нижней треугольной матрицы с диагональю:
index = ((i + 1) * i/2 + i).
С уважением,
Звучит как вопрос о домашнем задании. Что вы пробовали? Какие результаты он дал? Можете ли вы изменить один из них без основной диагонали для работы с главной диагональю? – mkasberg
Я пробовал это без диагонали: k = (n * (n-1)/2) - (ni) * ((ni) -1)/2 + j - i - 1 И это для нижнего треугольник с диагональю: ((I + 1) * I/2 + J). – Bako
@Bako вы можете включить это в вопрос вместе с кодом, который вы использовали. То, что вы здесь предоставили, - это логика, и не каждый смотрит на комментарии. Итак, пожалуйста, отредактируйте вопрос. –