Divisibilité et modulo
-
GGouranga dernière édition par
Bonjour,
Je fait de la programmation dans mon temps libre, du java. Et étant en deuxième année de deug math-informatique, j'ai aussi des maths au programme.
Je me suis lancé dans un projet consistant en l'élaboration d'un programme de maths, traitement des matrices, résolution de systemes divers, en fait surtout de l'algèbre.
Mais tout a un début. Pour effectuer la programmation (i.e l'automatisation) de la résolution d'un systeme d'équations, il faut considérer tout d'abord la base de l'algèbre: les nombres entiers relatifs.
Ayant écrit de nombreuses lignes de code, je suis maintenant bloqué sur un problème qui pourrait sembler enfantin: Soient a,b dans Z. Comment automatiser le calcul de a div b? Comment automatiser le calcul de a mod b?
Autrement dit existe-t-il une formule donnant le résultat de la division entière de a par b dans Z? En existe-t-il une donnant le reste de la division entière de a par b dans Z?
J'insiste sur Z car on ne trouve que rarement une calculatrice ou un programme donnant q,r dans Z tels que: a = b x q + r, avec a ou b dans Z.
foi/
-
Bonjour,
Si mes souvenirs ne sont pas trop loin
pour diviser a par b et trouver q le quotient et r le resteon a q = partie entiere de (a/b)
et r = a - qb
à vérifier car alzheimer me guette
-
GGouranga dernière édition par
Les égalités que tu me donnes marchent. Mais uniquement si a et b sont dans N.
Prenons a=-13 et b=-4, ça nous donne:
-13 = -4 x 4 + 3
Donc q=4 et r=3.
...
-
je dois avouer que je ne sais plus ce que donne la division enclidienne pour les négatifs.
parce que -13 = (3)*(-4) - 1
q = partie entière de (-13)/(-4) = 3
et r = -13 - (3)*(-4) = -1 ne conviennent pas
En effet dans Z le reste doit être positif ou nul et inférieur à valeur absolue de b
-
BBeudoul dernière édition par
Salut !!
Visiblement (il faudra tester après), il y a problème quand le reste est négatif.
Dans ce cas là, avant de renvoyer le résultat de la division euclidienne, tu testes le signe de ton reste.
S'il est positif ou nul, tu peux renvoyer, sinon tu rajoutes la valeur absolue de ton dividande à ton reste ( le "nouveau" reste sera alors positif et bien compris entre 0 et la valeur absolue de ton dividande) et tu en déduis le quotient q=(a-r)/b.
Je ne suis absolument pas sûr que ça marche, sinon en Java il ya la méthode "modulo" qui s'ecrit a % b mais je ne sais pas comment elle marche pour les entiers négatifs.