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 |
|
|
|