Zera niezależne C++

Witam

Mam pytanie jak oznaczyć w macierzy zera niezależne czyli tak że na danej linii pionowej lub poziomej może się znajdować tylko jedno zero i później wyświetlić na jakich współrzędnych jest to zero (i,j) i ile jest tych zer niezależnych

Prosze o pomoc

Poniżej przykładowa macierz

rys8_07.gif

a poźniej chce “wykreślić” wszystkie zera jak najmniejszą liczbą “linii”

rys8_12.gif

Jakiś pomysły ??

Pomógłbym, ale:

  • nie rozumiem w jaki sposób dobiera się te zera. Dlaczego zero w 1 macierzy na poz. (1,3) nie jest niezależne, a zero na poz. (4,3) już jest.

A, czy to jest ważne, jak dobierają się, elementy w tablicy/macierzu? Albo są losowane, albo z podanego wzoru.

Moim zdaniem można by zrobić, tak, że w programie zapamiętywać podane pole i rekord w którym znajduje się 0 oraz następnie porównać z liczbami z kolumny i wiersza. No, ale łatwiej się mówi niż pisze, jednak wydaje się to mi realny sposób.

Pozdrawiam

masz racje dokłądnie tak trzeba zrobić tylko jak to zaimplementować

mam współrzędne 1,3 2,3 2,4 3,1 3,2 4,3 i tam gdzie pierwsza albo druga współżedna jest taka sama to nie wpisuje jej do tablicy

Vector, tablica. Jednak to nie byłby najładniejszy sposób to jest racja :?. Można by było sprawdzać, czy w tablicy podany element jest 0, następnie kiedy na taki element by trafiło, sprawdzone zostałyby właśnie ta kolumna i wiersz

następnie zrobić by

if (tab[i,j] == 0) /*NULL <- teoretycznie kiedyś czytałem, że tego się nie stosuje, ale zazwyczaj działa :)*/

licznik++;

Można też zrobić tak (stosunkowo łopatologiczny sposób). Najpierw przechodzisz po wszystkich wartościach macierzy (dwie zagnieżdżone pętle) i tworzysz tablicę punktów (każdy taki punkt to struktura zawierająca trzy pola -> wiersz / kolumna / czyNiezalezne - domyślna wartość to true) zawierającą informację o lokalizacji wszystkich zer w macierzy. Następnie przechodzisz po elementach tej tablicy punktów i porównujesz każdy punkt z każdym (dwie zagnieżdżone pętle). Jeśli dla jakiegoś punktu z tej tablicy wiersz lub kolumna mają te same wartości co dla innego punktu z tej tablicy, tzn. że dla obu tych punktów musisz ustawić wartość czyNiezalezne na false. Na końcu przechodzisz pojedynczą pętlą po wszystkich elementach tablicy punktów i wypisujesz tylko te 0, dla których wartość pola czyNiezalezne jest wciąż true.