pracuję z MxM trójkątnej macierzy, która ma następującą postać:Pierwsze wiersza i kolumny trójkątnej Matrix, biorąc pod uwagę Index
M = [m00 m10 m20 m30 m40]
[m11 m21 m31 m41 ]
[m22 m32 m42 ]
[m33 m43 ]
[m44 ]
Jeśli łatwiej wyobrazić to pod względem indeksów, że będzie wyglądać tak:
M = [0 1 3 6 10]
[2 4 7 11 ]
[5 8 12 ]
[9 13 ]
[14 ]
znam ten sposób indeksowania może wyglądać dziwnie, ale byłoby znacznie łatwiej, gdybym mógł utrzymać system indeksowania, jak to jest w porządku dla tego modułu do pracy z innymi.
Walczę z algorytmem, który pobiera indeks i rozmiar macierzy, która może zwrócić wiersz i kolumnę, w której znajduje się dany indeks. Idealnie byłoby mam 2 funkcje, takie jak te:
int getRow (int index, int size);
int getCol (int index, int size);
Więc getRow (7, 5)
wróci 3
And getCol (7, 5)
wróci 1
mam natknąć tego wątku już, ale nie wydaje się modyfikować rozwiązania biorąc pod uwagę, że pracuję na sposób, w jaki się indeksuję.
algorithm for index numbers of triangular matrix coefficients
Tak, masz rację, dokonam edycji. Mimo to, nadal nie mogę wydawać się przerobić algorytm podany w innym temacie, aby pasował do sposobu indeksowania. – Redek
dlaczego getRow (7, 5) zwróci 3? –
Ponieważ sposób indeksowania, wiersze są przekątnymi (nie poziomymi), więc wiersz 3 to 'm30, m31, m32, m33' – Redek