Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Sommare gli elementi di una diagonale generica in una matrice

    Salve ragazzi, ho un problema su cui stò impazzendo e precisamente, devo implementare un metodo in java che, data una matrice del tipo:
    5 x x x x x x
    4 x x x x x x
    3 x x x x x x
    2 x x x x x x
    1 x x x x x x
    0 x x x x x x
    # 0 1 2 3 4 5
    (# l'ho messo solo per far coincidere gli indici con le rispettive colonne) in cui indici riga e colonna sono come in un piano cartesiano, inserendo da tastiera una coordinata (a,b) mi faccia la somma degli elementi appartenenti ad ogni singola retta parallela alla retta che parte da (0,0) e passa per l'elemento (a,b) ed inserire tali somme in un vettore...per esempio inserendo (2,1):
    • b[0] = matrice[0][5]
      b[1] = matrice[1][5]
      b[2] = matrice[0][4] + matrice[2][5]
      b[3] = matrice[1][4] + matrice[3][5]
      b[4] = matrice[0][3] + matrice[2][4] + matrice[4][5]
      b[5] = matrice[1][3] + matrice[3][4] + matrice[5][5]
      b[6] = matrice[0][2] + matrice[2][3] + matrice[4][4]
      e cosi via fino a...
      b[15] = matrice[5][0].

    ci stò impazzendo perchè non trovo un criterio per incrementare/decrementare gli indici della matrice in modo da poter fare tali somme...
    qualcuno ha un'idea su come potrei fare??..

  2. #2
    Puoi provare con questa libreria qua...sembra faccia al caso tuo.

    http://sourceforge.net/projects/vmatrixlib/

    Ho dato un'occhiata.
    Oltre ad una funzione del calcolo del determinante generico c'è anche una funzione specifica del calcolo del determinante con metodo di Kramer, che poi è quello che usi tu quando tagli riga colonna.

    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    premesso che in un sistema discreto come una matrice ha poco senso parlare di rette (tolto righe, colonne, diagonale principale e sue sopra-sotto diagonali e le simmetriche), ma lascio a te l'astrazione di dire quale "casella" s'avvicina (ovvero appartiene) ad una data retta e quale invece è esclusa, potresti:

    - determinare il tuo coefficiente angolare
    - partire dall'angolo in alto a sx (che sicuramente appartiene ad una delle parallele): (0, 5)
    - decrementare di una unità "l'ordinata" ad ogni passaggio e determinare l'equazione della retta parallela alla data e con l'intercetta appena determinata)
    - applicare alla retta appena determinata il tuo algoritmo decisionale

    ripetere fino a quando non "esci" dalla matrice (ovvero fino a quando non hai trovato il punto in basso a dx (5, 0) che apparterrà all'ultima delle rette parallele.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.