Sì, la questione alla fin fine è questa: il fatto che 259210000 int contigui per qualche motivo (frammentazione del heap o altro) non riesce ad ottenerli.Originariamente inviato da Pierock
lo devo attribuire al fatto che il primo caso, se pur occupando meno spazio, comporta la più difficoltosa pretesa che le 259210000 celle siano "contigue", mentre utilizzando due indici, questa quantità di celle viene suddivisa in 16100 settori?
La pagina che ho linkato infatti descrive questa questione.Originariamente inviato da Pierock
Si Si... per cercare di lavorare con più numeri possibili ho aumentato già la dimensione dell'heap, ho impostato -Xmx1024m !! vorrei fare di più ma proprio nn me lo permette!
Se le cose stanno così, si può di certo fare qualcosa. Ma a questo punto non più con gli array. Fai una tua classe Matrice (che tra l'altro può poi fare tutte le operazioni che vuoi) che ha i metodi get/set per gestire i dati nella matrice. Ma attenzione, Matrice internamente invece di usare un array bidimensionale potrebbe usare una "map" che associa ad esempio un oggettino (anche privato, non visibile all'esterno) Cella che "modella" riga/colonna ad un oggetto Integer.Originariamente inviato da Pierock
fortunatamente per me, sono matrici stracolme di zeri , quindi sono convinto che la mia unica ancora di salvezza sia qualla di realizzare delle matrici sparse , tenendo traccia esclusivamente dei valori NON nulli.
avresti mica delle dritte in tal proposito??
E ovviamente fai in modo da tenere solo valori non zero. Se viene settato un valore zero e prima c'era qualcosa nella mappa lo elimini. Se viene fatto un get e non c'è nella mappa, ritorni 0.
Insomma, dall'esterno sembra una normale completa matrice ma tu internamente ottimizzi la memorizzazione.
Qui non ho proprio idea di cosa sia una "fattorizzazione LU" ... passo la parola a qualche guru di matematica.Originariamente inviato da Pierock
qualcuno ha una vaga idea di come realizzare una fattorizzazione LU (LU decomposition) di tale matrice???![]()

Rispondi quotando