Получение строки и столбца треугольной матрицы по заданному индексу

Я работаю с треугольной матрицей MxM, которая имеет следующий вид:

M = [m00 m10 m20 m30 m40]
    [m11 m21 m31 m41    ] 
    [m22 m32 m42        ]
    [m33 m43            ]
    [m44                ]

Если проще представить это в терминах индексов, то это будет выглядеть так:

M = [0 1 3 6 10]  
    [2 4 7 11  ]
    [5 8 12    ]
    [9 13      ]
    [14        ]

Я знаю, что такой способ индексации может показаться странным, но было бы намного проще, если бы я мог оставить систему индексации такой, какая она есть, чтобы этот модуль хорошо работал с другими.

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

int getRow (int index, int size);
int getCol (int index, int size);

Итак, getRow (7, 5)вернет 3

И getCol (7, 5)вернет 1

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

алгоритм для порядковых номеров коэффициентов треугольной матрицы

8
задан Community 23 May 2017 в 10:27
поделиться