par TheReveller » 31 Mar 2009, 01:05
Non, ce n'est pas une erreur, c'est voulu.
J'ai pour :
x = -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ,10
La valeur retournée par le langage informatique pour Mod(x, 6) et Mod(x, -6) :
-4, -3, -2, -1, -0, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4
-4, -3, -2, -1, -0, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4
Ma calculatrice me répondrait plutôt :
2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4
-4, -3, -2, -1, 0, -5, -4, -3, -2, -1, 0, -5, -4, -3, -2, -1, 0, -5, -4, -3, -2
Le reste selon ta définition serait :
2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4
2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4
Et moi j'ai défini par le langage informatique une fonction _Mod(x, y) = Abs(Mod(Mod(x, y)+y, y), ce qui me renvoie :
2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4
4, 3, 2, 1, 0, 5, 4, 3, 2, 1, 0, 5, 4, 3, 2, 1, 0, 5, 4, 3, 2
Ce qui m'est utile pour établir une boucle continue quelque soit la valeur de x. Avec ça, que j'incrémente le x jusqu'à l'infini ou moins l'infini, la boucle sera toujours la même et si mon y est négatif, c'est la même chose, mais décroissant.
L'utilité la plus basique : J'ai un tableau de 10 éléments de t[0] à t[9] et une variable p qui me positionne dans ce tableau pour me renvoyer l'élément t[p]. En incrémentant p, l'élément suivant t[9] sera t[0] tandis qu'en décrémentant p, l'élément précédent t[0] sera t[9].
Merci pour ces éclaircissements à propos du reste et du modulo. Je comprends donc que pour ce qui est du modulo, il faut toujours le tester avant de l'utiliser puisqu'il peut être défini sous différentes conventions, tandis que le reste est toujours une valeur positive.