Bonjour,
Je comptais programmer cette vérification; voilà une bonne chose de faite. Picodev a une intuition de calcul tout à fait étonnante.
Effectivement, c'est le détournement que j'évoquais à propos d'une autre possibilité de calculer les éléments de la matrice:... sauf que le parcours de la matrice n'est pas correct
puisqu'il est parcouru ligne à ligne ...
Il m'a paru, d'après la documentation consultée, que le parcours ainsi programmé a une importance essentielle, dans le traitement des images notamment. Un spécialiste expliquerait cela beaucoup mieux que moi.Mais un autre procédé plus rapide pourrait être envisagé, en deux étapes:
a) remplissage de la matrice par les entiers naturels successifs de [0 ; n2-1] à partir du coin supérieur gauche (a0,0), en suivant dans le sens toujours descendant les rangées consécutives parallèles à la seconde diagonale;
b) transposition des mêmes rangées d'ordre impair > 2 (pour les coins extrêmes, c'est inutile).
Cette dernière transformation est involutive, puisque son renouvellement conduit à la matrice d'origine. Ce procédé constitue cependant une tricherie, dans la mesure où l'obtention de la matrice transformée ne passe plus par le parcours imposé. A voir cependant ...
Quel langage as-tu utilisé ? Les instructions me sont familières ... Free Pascal peut-être ? Je ne m'y suis pas encore investi à fond. (*)
Juste un détail, assez secondaire: je n'aurais pas utilisé directement la fonction puissance power(-1,i+j) ,
mais plutôt quelques instructions comme:
susceptibles d'alléger un peu la suite du calcul.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 s:= i + j; IF Odd(s) THEN Epsilon:= -1 ELSE Epsilon:= 1;
Mais il est vrai que chaque langage a son style approprié, et de même chaque programmeur ...
(*) Je viens d'apercevoir la fonction booléenne Odd(s) donc c'est du Pascal, vraisemblablement.
Partager