Mnożenie tablic (c++)

0

Siemacie

Dostalem od chlopa zadanie z programowania ktorego za cholere nie moge zrozumieć. Nie prosze tu o jego rozwiazanie, tylko o wskazowke. Oto jego tresc:

"Proszę napisać program, który tworzy dwuwymiarowe tablice T1, T2 takie, że:
T1[i][j]=i+j, T2[i][j]=T1[i][j]*T1[j][i]."

Z tego co zrozumialem mam utworzyc tablicę T1 taką ze np T1[2][3] bedzie wygladac natepujaco:

T1[0][0] T1[0][1] T1[0][2]

T1[2][0] T1[2][1] T1[2][2]

i bedzie posiadac nastepujace wartosci, odpowiednio

0 (0+0) 1 (0+1) 2 (0+2)

2 (2+0) 3 (2+1) 4 (2+2)

Sprawa sie komplikuje przy mnozeniu tablicy T1[i][j] przez transponowana tablice T1 (T1[j][i]). Transponujac tablice T1 utworzylem tablice T1' . Nastepnie chcialem je pomnozyc (T1*T1'). I tutaj pojawily sie schody. Okazalo sie ze w ten sposob moge mnozyc tylko tablice o tej samej ilosci wierszy i kolumn ('i' musi byc rowne 'j') bo inaczej wychodza bzdury. A jesli 'i' musi byc rowne 'j' to wedlug mnie to zadanie sformulowane jest bezsensownie. A moze mam mnozyc te tablice tak jak to sie liczy w wypadku macierzy? Lecz wtedy znów nie bedzie spelnione zalozenie zadania bo z mnozenia macierzy 2 na 3 i 3 na 2 wychodzi macierz kwadratowa 2 na 2. A z zalozenia zadania T1[i][j]=i+j, T2[i][j]=T1[i][j]*T1[j][i] wynika ze macierze T1 i T2 maja miec taka sama liczbe wierszy i kolumn. Tak wiec moje pytanie: jak pomnozyc T1[i][j]*T1[j][i] aby otrzymac tablice T2 o takiej samej ilosci wierszy i kolumn jak T1. Szczere dzieki za jakakolwiek pomoc.

0

moze to myślenie jest zbyt płytkie ale masz napisane T2[i][j]=T1[i][j]*T1[j][i] czyli jeżeli pod i i j podstawimy 2 mamy ze w T2[2][2]=T1[2][2]T1[2][2]=(2+2)(2+2) =16 przy czym należy założyć iż tablica jest kwadratowa czyli i=j
chyba o to biega w tym zadaniu a co do mnozenia macierzy polecam google albo Wiki

0

O ja, no wlasnie moze wlasnie to to mu chodzilo LOL nie pomyslalem :P Dzieki za odpowiedz.

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