OVH Cloud OVH Cloud

equation

9 réponses
Avatar
Jacky Renaux
Bonjour je ne suis pas un gourou en math mais il me semble
que mod (le calcul du modulo d'un nombre) n'est pas tres
juste pour ne pas dire faux

le modulo est le reste de la division (mod(a;b) donne le
reste de la division de a par b ainsi mod(6;15)= 6
et mod(16;15) = 1 ca marche bien mais
mod(-6;15) donne un nombre negatif alors que cela devrait
etre 9 .. qu'en pensez vous ? es ce que je fais une erreur
ou bien es ce vba ?

merci

jacky

9 réponses

Avatar
Ricky [MVP]
Bonjour *Jacky Renaux* (et tous les lecteurs)
| Bonjour je ne suis pas un gourou en math mais il me semble

Effectivement

| que mod (le calcul du modulo d'un nombre) n'est pas tres
| juste pour ne pas dire faux

?

| le modulo est le reste de la division (mod(a;b) donne le
| reste de la division de a par b ainsi mod(6;15)= 6
| et mod(16;15) = 1 ca marche bien mais
| mod(-6;15) donne un nombre negatif alors que cela devrait
| etre 9 .. qu'en pensez vous ? es ce que je fais une erreur
| ou bien es ce vba ?

C'est toi.
On ne parle pas de faire -6+15 qui donnerait effectivement 9 mais bien
une division

15, dans -6, il y va 0 fois et il reste ... -6 inutilisés
Souviens-toi dans une multiplication ou division + par + et - par - ça
donne +
Quand les deux signes sont différents ça donne -.


| merci
|
| jacky

Pas de quoi. Bonnes révisions...

--
Ricky [MVP] Visitez les faq....
http://www.faqoe.com http://faq.ms.word.free.fr
http://dj.joss.free.fr/faq.htm http://www.excelabo.net
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
Avatar
jacky renaux
Je voudrais apporter des precisions sur mon message
si on fait dans une cellule =mod(-6;15) on trouve 9 qui
est la bonne reponse
mais dans une macro res = -6 mod 15 on obtient -6

pardon pour cette confusion mais j'aimerais bien connaitre
d'ou vient l'erreur

jacky
-----Message d'origine-----
Bonjour je ne suis pas un gourou en math mais il me
semble

que mod (le calcul du modulo d'un nombre) n'est pas tres
juste pour ne pas dire faux

le modulo est le reste de la division (mod(a;b) donne le
reste de la division de a par b ainsi mod(6;15)= 6
et mod(16;15) = 1 ca marche bien mais
mod(-6;15) donne un nombre negatif alors que cela devrait
etre 9 .. qu'en pensez vous ? es ce que je fais une
erreur

ou bien es ce vba ?

merci

jacky

.



Avatar
Elfe Noir
Bonjour

parce que pour la fonction modulo (15) les chiffres "-6" et "+9" sont
équivalents


"jacky renaux" a écrit dans le message
de news:02db01c3ce07$03749210$

Je voudrais apporter des precisions sur mon message
si on fait dans une cellule =mod(-6;15) on trouve 9 qui
est la bonne reponse
mais dans une macro res = -6 mod 15 on obtient -6

pardon pour cette confusion mais j'aimerais bien connaitre
d'ou vient l'erreur

jacky
-----Message d'origine-----
Bonjour je ne suis pas un gourou en math mais il me
semble

que mod (le calcul du modulo d'un nombre) n'est pas tres
juste pour ne pas dire faux

le modulo est le reste de la division (mod(a;b) donne le
reste de la division de a par b ainsi mod(6;15)= 6
et mod(16;15) = 1 ca marche bien mais
mod(-6;15) donne un nombre negatif alors que cela devrait
etre 9 .. qu'en pensez vous ? es ce que je fais une
erreur

ou bien es ce vba ?

merci

jacky

.



Avatar
Cyril Voisin [MS]
Bonjour.

Je suis d'accord avec vous.
Si a=b.q+p alors a mod b vaut p.
J'avoue ne plus très bien me souvenir de toutes ces définitions en ce qui
concerne des "modulo" de nombres négatifs (c'est à dire b négatif).
MOD() dans une feuille Excel et mod dans une routine VBA ne retournent pas
la même chose si un des deux nombres a ou b est négatif.
Cela est dû à leurs méthodes de calcul distinctes :
http://support.microsoft.com/default.aspx?kbid!4271

--
Cordialement,
cyrilv
3 étapes pour protéger votre PC :
http://microsoft.com/france/securite/protection

"Jacky Renaux" a écrit dans le message
de news:04c001c3cdfa$70daa040$
Bonjour je ne suis pas un gourou en math mais il me semble
que mod (le calcul du modulo d'un nombre) n'est pas tres
juste pour ne pas dire faux

le modulo est le reste de la division (mod(a;b) donne le
reste de la division de a par b ainsi mod(6;15)= 6
et mod(16;15) = 1 ca marche bien mais
mod(-6;15) donne un nombre negatif alors que cela devrait
etre 9 .. qu'en pensez vous ? es ce que je fais une erreur
ou bien es ce vba ?

merci

jacky



Avatar
garnote
Salut Jacky,

La formule =MOD(-6;15) donne 9.
C'est bon puisque -6 = -1 x 15 + 9
VBA : -6 Mod 15 donne -6.
C'est bon aussi puisque -6 = 0 x 15 -6
Cependant tu peux forcer VBA à donner
la même réponse que la formule en utilisant
à la place de n Mod d la chose suivante :
n - d * Int(n / d)
MOD(n;d) donne une réponse qui a le
même signe que d.
Quand n et d sont des entiers positifs,
(c'est la coutume mathématique)
les deux résultats sont identiques.

Serge


"Jacky Renaux" a écrit dans le message
de news: 04c001c3cdfa$70daa040$
Bonjour je ne suis pas un gourou en math mais il me semble
que mod (le calcul du modulo d'un nombre) n'est pas tres
juste pour ne pas dire faux

le modulo est le reste de la division (mod(a;b) donne le
reste de la division de a par b ainsi mod(6;15)= 6
et mod(16;15) = 1 ca marche bien mais
mod(-6;15) donne un nombre negatif alors que cela devrait
etre 9 .. qu'en pensez vous ? es ce que je fais une erreur
ou bien es ce vba ?

merci

jacky



Avatar
jacky renaux
-----Message d'origine-----
Bonjour *Jacky Renaux* (et tous les lecteurs)
| Bonjour je ne suis pas un gourou en math mais il me
semble


Effectivement

| que mod (le calcul du modulo d'un nombre) n'est pas tres
| juste pour ne pas dire faux

?

| le modulo est le reste de la division (mod(a;b) donne
le

| reste de la division de a par b ainsi mod(6;15)= 6
| et mod(16;15) = 1 ca marche bien mais
| mod(-6;15) donne un nombre negatif alors que cela
devrait

| etre 9 .. qu'en pensez vous ? es ce que je fais une
erreur

| ou bien es ce vba ?

C'est toi.
On ne parle pas de faire -6+15 qui donnerait
effectivement 9 mais bien

une division

15, dans -6, il y va 0 fois et il reste ... -6 inutilisés
Souviens-toi dans une multiplication ou division + par +
et - par - ça

donne +
Quand les deux signes sont différents ça donne -.


| merci
|
| jacky

Pas de quoi. Bonnes révisions...

--
Ricky [MVP] Visitez les faq....
http://www.faqoe.com http://faq.ms.word.free.fr
http://dj.joss.free.fr/faq.htm http://www.excelabo.net
http://support.microsoft.com/directory/worldwide/fr/newsgr
oup/regles.htm


.



Avatar
jacky renaux
je ne suis pas tres d'accord avec toi

mod retourne le reste et le reste d'une operation n'est
jamais negatif .... sauf si on utilise le complement du
reste ce qui apparemment est fait avec VBA mais pas avec
excel , puisque vba demande a faire n - d * Int(n / d)

Jn'etais pas conscient de l'implementation differente
mais en math mod n'a jamais ete une division , l'operation
est basee sur une division oui. a l'avenir je testerai les
2 implementations (a propos javascript et C donnent le
meme resultat que excel a la difference de VBA qui
a "invente" les modulos negatifs ..)

dans la reponse tu dis il reste -6 qui est inutilise,
c'est exact mais cela n'a jamais ete le modulo du nombre

merci de toutes vos reponses , je suis alle voir la page
citee par serge, je suis d'accord entierement avec ce qui
est ecrit mais en arithmetique modulaire, je n'avais
jamais vu un modulo negatif, j'utilise excel pour verifier
les operateurs que je cree dans des composants
electroniques mais .... ce n'est pas parceque je n'en
avais jamais vu que cela ne peut arriver ...

merci a tous et encore une fois joyeuses fetes

jacky





-----Message d'origine-----
Bonjour *Jacky Renaux* (et tous les lecteurs)
| Bonjour je ne suis pas un gourou en math mais il me
semble


Effectivement

| que mod (le calcul du modulo d'un nombre) n'est pas tres
| juste pour ne pas dire faux

?

| le modulo est le reste de la division (mod(a;b) donne
le

| reste de la division de a par b ainsi mod(6;15)= 6
| et mod(16;15) = 1 ca marche bien mais
| mod(-6;15) donne un nombre negatif alors que cela
devrait

| etre 9 .. qu'en pensez vous ? es ce que je fais une
erreur

| ou bien es ce vba ?

C'est toi.
On ne parle pas de faire -6+15 qui donnerait
effectivement 9 mais bien

une division

15, dans -6, il y va 0 fois et il reste ... -6 inutilisés
Souviens-toi dans une multiplication ou division + par +
et - par - ça

donne +
Quand les deux signes sont différents ça donne -.


| merci
|
| jacky

Pas de quoi. Bonnes révisions...

--
Ricky [MVP] Visitez les faq....
http://www.faqoe.com http://faq.ms.word.free.fr
http://dj.joss.free.fr/faq.htm http://www.excelabo.net
http://support.microsoft.com/directory/worldwide/fr/newsgr
oup/regles.htm


.



Avatar
garnote
«merci de toutes vos reponses , je suis alle voir la page
citee par serge,»

citée par Cyril

;-)
Serge
Avatar
AV
Et en utilisant la fonction de feuille ?

msgbox [mod(-6,15)]

AV