Hogy tudom azt lekodolni hogy egy negyzetes matrix mellékátlótól barra levő elemek 1 -el kisebbek legyenek mint a mellekatlon levo adott elem?
így kéne kinézzen a matrix ha a mellekatlon levo elemek erteke 4.
1 2 3 4
2 3 4 0
3 4 0 0
4 0 0 0
<szemét>
Most elsőre az a válasz jutott eszembe, hogy leülsz, és legépeled, de hogy valamit segítsek is.
</szemét>
Fogsz 2 db ciklust, ahol a belső a sorok elemein megy végig.
Külső cv. legyen i, belső legyen j. Mátrix mérete legyen AxA. Ekkor megadhatod azt, hogy mennyivel legyen kisebb az adott elemed a mellékátló eleménél így: i+(A-j-1)
Tehát az 1-es értékű elem így jön ki: 1 = 4-(0+(4-0-1))
Az első 4-es a mellékátló eleme, a második a mátrix mérete.
igy ez lett az eredmeny:
1 2 3 4
1 2 4
1 4
4
Egyszer volt, hogy hasonló problémával találtam magam szembe. Akkor egységmátrixot kellett generálni. A két egymásba ágyazott for loop egy nagy szívás volt 10.000 méretnél az iterációk száma már számillió, és már nagyon sokáig tart a generálás. Nekem 60000-es méretű kellett volna, ahol már trükközni kellett.
Elég ugyanis csak a sorokon végigmenni, hiszen pontosan tudni lehet, hogy, ha az n. sorban vagy, akkor az n. számtól az x. számig lesznek számok, utána x-n db nulla lesz. Ezt for ciklus nélkül le lehet generálni. De gyanítom ez esetedben nem lesz probléma. :D
Igen, elrontottam, de jobb is volt így, magadtól jöttél rá. (nem direkt volt)
@#6: ilyenre nem érdemes tömböt használni, legjobb valami mapot vagy hasonlót ("sparse matrix")
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!