algorithm for index numbers of triangular matrix coefficients

前端 未结 7 734
广开言路
广开言路 2020-12-04 22:29

I think this must be simple but I can\'t get it right...

I have an MxM triangular matrix, the coefficients of which are stored in a vector, row by row. For example:

7条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-04 22:48

    Took me some time to understand what you needed! :)

    unsigned int row_index(int i, int m)
    {
        int iCurrentRow = 0;
        int iTotalItems = 0;
        for(int j = m; j > 0; j--)
        {
            iTotalItems += j;
    
            if( (i+1) <= iTotalItems)
                return iCurrentRow;
    
            iCurrentRow ++;
        }
    
        return -1; // Not checking if "i" can be in a MxM matrix.
    }
    

    Sorry forgot the other function.....

    unsigned int column_index(int i, int m)
    {
        int iTotalItems = 0;
        for(int j = m; j > 0; j--)
        {
            iTotalItems += j;
    
            if( (i+1) <= iTotalItems)
                return m - (iTotalItems - i);
        }
    
        return -1; // Not checking if "i" can be in a MxM matrix.
    }
    

提交回复
热议问题