View Full Version : Ricorsione su matrice di NxM elementi
lucabilloballo
24-07-2013, 18:17
Salve a tutti,
prima di tutto ci tengo a scusarmi nel caso in cui stia sbagliando qualche procedura, ma mi sono appena iscritto.La mia domanda era se qualcuno di voi conoscesse un metodo per scrivere una funzione che accetta una matrice di NxM elementi e restituisce la sua trasposta. Il tutto dovrebbe avvenire utilizzando la ricorsione ed il linguaggio c(non c++ o altro,il mio è un corso base).
Vi ringrazio in anticipo delle risposte.
[Kendall]
25-07-2013, 08:26
Salve a tutti,
prima di tutto ci tengo a scusarmi nel caso in cui stia sbagliando qualche procedura, ma mi sono appena iscritto.La mia domanda era se qualcuno di voi conoscesse un metodo per scrivere una funzione che accetta una matrice di NxM elementi e restituisce la sua trasposta. Il tutto dovrebbe avvenire utilizzando la ricorsione ed il linguaggio c(non c++ o altro,il mio è un corso base).
Vi ringrazio in anticipo delle risposte.
Mmmmmmh... Non capisco però per quale motivo utilizzare la ricorsione per il calcolo della trasposta, che è niente più niente meno che la medesima matrice con righe e colonne invertite (quindi i principi della ricorsione mi sembrano un pò estranei a questo scenario. Sono spontanei invece da utilizzare per esempio nel calcolo del determinante di una matrice, dove nello sviluppo di Laplace si va a fare ricorsivamente il calcolo del determinante delle "sottomatrici").
Comunque, a livello di calcolo numerico solitamente non ha senso "calcolare" la trasposta (e quindi occupare potenza computazionale e memoria in questo, che per matrici di grosse dimensioni diventa di un certo spessore) ma si accede alla medesima matrice invertendo semplicemente gli indici di righe e colonne.
Se ti serve "generare" la matrice trasposta (quindi creare proprio una nuova matrice in memoria) semplicemente partendo dalla matrice NxM te ne generi una nuova MxN e cominci riga per riga della prima a copiare i valori nelle colonne della seconda.
Tutto questo ovviamente se si parla di matrici generiche. Nel caso di matrici particolari, come matrici simmetriche, matrici sparse o altro l'utilizzo dell'array bidimensionale è uno spreco spropositato di spazio e si procede con altri approci.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.