2016-04-18 1 views
-3

Je suis assez nouveau à haskell. Notre tâche consiste à écrire un algorithme qui calcule la dimension d'une matrice carrée. Mais nous ne sommes pas censés utiliser des listes. Mais je ne sais pas comment accéder à chaque élément de la matrice, qui est donné comme ça:Comment accéder aux éléments d'une matrice sans listes dans cet exemple?

matrixA 1 1 = 0 
matrixA 1 2 = 42 
matrixA 1 3 = 1337 
matrixA 2 1 = 501 
matrixA 2 2 = 314 
matrixA 2 3 = 301 
matrixA 3 1 = 13 
matrixA 3 2 = 161 
matrixA 3 3 = 271 
matrixA _ _ = -1 

Répondre

2

Pour accéder à l'élément de la matrice à la ligne et la colonne ij, vous pouvez simplement utiliser matrixA i j. En fait, matrixA est une fonction qui mappe les deux index à l'élément de matrice.

Je suppose que le dernier cas -1 représente une valeur non valide, ce qui signifie «index en dehors de la matrice». Donc, il semble que pour trouver la taille que vous avez juste besoin d'interroger la matrice avec des index de ligne/colonne de plus en plus grands jusqu'à ce que vous obteniez -1. Un moyen fondamental de résoudre cela est de procéder récursivement.