Macierz rzadka

0

Witam szanownych użytkowników, mam takie pytanie czy może ktoś z was pisał program wyświetlający macierze rzadkie ?
Osobiście pojęcia jak to zrobić zacząłem pisać ale utknąłem na tym że przydały by się tu wyznaczniki których nie znam zresztą i tak nie mogę ich użyć.
Zdaję sobie sprawę że wybrałem najłatwiejszy sposób prosząc was zamiast samemu to rozgryźć, ale po tygodniu zmagań przestało mnie to bawić.
Z góry dziękuję za wszelką pomoc.

0

eee... np tak ?
M[2,3]=4
M[4,4]=8
M[100,100]=1

1

@up, i jak masz macierz M 1000x1000, która ma jeden element niezerowy M[235,745]=45, to musisz pamiętać milion liczb. Lekko bez sensu. Lepiej pamiętać jako trójkę (235,475,45).

0

Ok ale jak juz bede to pamietal jako trojki to potem jak wyswietle to jako macierz

1

Nie znam kolekcji w C++. w Javie wyglądało by to tak (korzystam ze standardowej klasy Point):

int rows=...; //ilość wierszy
int cols=...; //ilość kolumn
HashMap<Point,Double> macierz=new HashMap<Point,Double>();
macierz.add(new Point(77,123),23.6);
...
macierz.add(new Point(57,102),12.879);
for(int w=0;w<rows;w++)
   for(int k=0;k,cols;k++)
      if(macierz.get(new Point(w,k)==null)
         //wypisz zero
      else
         //wypisz wyraz
         
0

dziękuję bardzo za pomoc już chyba wszystko kminie, ale żeby nie było zbyt kolorowo coś mi sie znowu sypneło a mianowciie ten moment

using namespace std;
int m, n, lw;

int main(int argc, char *argv[])
{
    cout << "Podaj rozmiar macierzy rzadkiej m x n" << endl << "m= ";
    cin >> m;
    cout << "n= ";
    cin >> n;
    cout << "Ile wartosci niezerowych bedzie zawierac ta macierz ?"<<endl;
    cin >> lw;
    
    int matrix[m][n];
    
    for(int j=0; j==n; j++)
    {
for(int i=0; i==m; i++)
{
        matrix[i][j] = 0;      
};
        }; 

Chce tablice wypełnić zerami ale potam jak sobie wyswietam np [5][5] to nie ma tam zera nie moge rozkminic co jest zle

0
    for(int j=0; j<n; j++)
    {
        for(int i=0; i<m; i++)
0

wszystko już napisane i ładnie działa prócz wyświetlania
jak teraz zrobić żeby wyświetlało np 20x20 a potem szlo w dol az sie skonczy i potem np w lewo
mowiac prosiej podzielilo calosc na ladne rowne kawalki

0

http://wklej.org/id/437557/

Chce zeby macierz byla wyswietlana kwadratami 20x20 idacymi w prawo ale cos nie działa

1 użytkowników online, w tym zalogowanych: 0, gości: 1