t = True
f = False
anzNachbarn :: [[Bool]] -> (Integer,Integer) -> Integer
anzNachbarn a (x,y)
| x < 0 || y < 0=-1
| otherwise ... here comes the comparison
Ceci est une matrice exemple:comparaison Bool Valeur dans Matrix
[[True,False,False],
[True,False,False],
[False,True,False]]
ici je besoin d'un algorithme, où il calcule (pour donné position x et y dans la matrice) ses voisins (seulement "vrai" neighboors) et l'augmenter de 1 pour chaque vrai voisin.
Par exemple: anzNachbarn [[Vrai, Faux, Faux], [Vrai, Faux, Faux], [Faux, Vrai, Faux]] (0,1)
2 retours en arrière.
: Modifier
J'ai encore une question comment puis-je mettre en œuvre maintenant chaque composant de la matrice de résultat, le nombre d'éléments nommés avec des champs vrais voisins indique le composant correspondant de la matrice d'argument s'applique à
[[Vrai, Faux, Faux],
[Vrai, Faux, Faux],
[Faux, Vrai, Faux]]
la fonction func renvoie la matrice de résultats [[1,2,0], [2,3,1], [2,1,1]] avec la signature func :: [[Bool]] -> [[ Entier]] avez-vous une idée à ce sujet?
comment puis-je changer l'index (Int, Int) en programme (Integer, Integer) s'exécute vrai – marco
J'ai encore une question comment puis-je maintenant implémenter chaque composant de la matrice de résultat, le nombre de noms avec les champs Vrai voisins indique le composant correspondant de la matrice d'arguments S'applique à [[Vrai, Faux, Faux], [Vrai, Faux, Faux], [Faux, Vrai, Faux]], la fonction transforme la matrice de résultats [[1,2,0], [2,3,1], [2,1,1]] avec la signature func :: [[Bool]] -> [[Integer]] – marco
Le problème avec Integer est, ça !! attend un Int. Donc, si vous écrivez 'a !! (DeIntegral j) !! (fromIntegral je) 'Je pense que cela devrait fonctionner avec Integer. – Landei