Java: sčítání diagonál matice

HackForum

Java: sčítání diagonál matice#
Mam dvourozměrný pole o předem zadanejch rozměrech radku a sloupcu naplněný náhodnýma číslama.
Potřebuju do pomocnýho jednorozměrnýho pole o velikost radku+sloupcu-1 poukládat součty jednotlivých diagonál... Nevim jak zkombinovat cykly aby to fungovalo.

např u pole 2x2 (pro jednoduchost) by to bylo:
vysl[0]=matice[1][0]
vysl[1]=matice[1][1]+matice[0][0]
vysl[2]=matice[0][1]

první index značí řádek, druhý sloupec

Mohl by pls někdo poradit? Už nad tim sedim několik hodin a furt nic :(
(odpovědět)
Másloid | 147.32.94.*6.1.2008 19:41
re: Java: sčítání diagonál matice#
Jsem v práci - i popeláři makají přes noc :o)
tak jsem nad tím moc dlouho nemohl přemýšlet... Nic hezky geniálního to není, snad jen rozdělit si náběžnou a závěrnou hranu.
Není to Java, ale pro krátkost taková obecná "napůl C" zpotvořenina, do Javy si to už rozepiš...

pointer=0
hrana_1:
itY=0
for (itX=řádků; itX>0; itX--)
{řada; pointer++}
hrana_2:
itX=0
for (itY=0; itY<=sloupců; itY++)
{řada; pointer++}
end.

řada:
vysl[pointer]=0
x=itX
y=itY
while (x<=řádků and y<=sloupců)
{vysl[pointer]=suma[pointer]+matice[x][y]; x++; y++}
return;
(odpovědět)
gugumaa | 195.113.79.10/10.0.10.*6.1.2008 21:09
re: Java: sčítání diagonál matice#

for (pos = 0, diax = 0, diay = vyska; pos < (sirka+vyska-1); pos++) {
diax += (pos >= vyska);
diay -= (pos < vyska);
suma[pos] = 0;
for (x = diax, y = diay; x < sirka && y < vyska; x++, y++)
suma[pos] += matice[x][y];
}


(odpovědět)
frk | 213.211.51.*7.1.2008 3:51
re: Java: sčítání diagonál matice#
v prvnim foru se projdou vsechny diagonaly (y se zmensuje dokud neprojde celou vysku, pak se zvysuje x [predpokladam, ze x roste zleva do prava, a y roste shora dolu]).
v druhem foru se spocita suma aktualni diagonaly.

(odpovědět)
frk | 213.211.51.*7.1.2008 3:55
re: Java: sčítání diagonál matice#

for (pos = 0, diax = 0, diay = 0; pos < (sirka+vyska-1); pos++) {
diax += (pos >= vyska);
diay += (pos < vyska);
suma[pos] = 0;
for (x = diax, y = diay; x < sirka && y < vyska; x++, y++)
suma[pos] += matice[x][y];
}


(odpovědět)
frk | 213.211.51.*7.1.2008 3:58
re: Java: sčítání diagonál matice#
to melo byt pro pripad, ze [0,0] je vlevo dole. je v tom chybycka, ale logika je snad jasna
(odpovědět)
frk | 213.211.51.*7.1.2008 4:00
re: Java: sčítání diagonál matice#
chybicka :)
(odpovědět)
frk | 213.211.51.*7.1.2008 4:01
re: Java: sčítání diagonál matice#
hééésky a krááátky :o)
(odpovědět)
gugumaa | 195.113.79.10/10.0.10.*7.1.2008 7:26

Zpět
 
 
 

 
BBCode