IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Fonction MOD et division euclidienne


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    statisticien (retraité)
    Inscrit en
    Mai 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : statisticien (retraité)

    Informations forums :
    Inscription : Mai 2017
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Fonction MOD et division euclidienne
    Bonjour,

    Une question qui devrait bien avoir déjà une réponse quelque part, mais que je n'ai pas trouvée...

    En maths, la relation de division euclidienne de a par b dans Z (entiers relatifs) est l’unique écriture : a=bq+r, où ∶ 0≤r<|b|
    La division dite euclidienne impose que le reste soit positif ou nul, et bien sûr inférieur à la valeur absolue du diviseur..

    Par exemple, pour diviser -53 par -17 , on écrira : -53 = -17 x 4 + 15 ; on a bien : reste = 15 < |-17|

    Au risque d'en faire trop, je précise que le reste devant être positif, il faut calculer -17 x ?, de sorte que cette valeur soit ≤-53, afin de pouvoir rajouter un reste >=0 pour arriver à -53 ; ceci impose donc le produit -17 x 4.

    Ceci dit, je suis intrigué car je pensais que la fonction MOD donnait justement le reste de la division euclidienne, mais ce n'est pas le cas. Dans mon tableur, j'obtiens : MOD(-53;-17) = -2

    Certes, il est bien vrai que : -53 = -17 x 3 - 2, mais ce n'est pas la définition d'une division euclidienne.

    Y a-t-il une façon d'obtenir le bon reste, qui devrait être +15 dans ce cas de figure ?

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Bonjour,

    la fonction MOD comme pourtant énoncé dans l'aide d'Excel renvoie juste le reste d'une division !

    Pour une division "euclidienne" il suffit donc d'écrire sa propre formule …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    En supposant que le divisé et le diviseur soient de même signe.
    En supposant que le premier est en A1 et le second en A2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MOD(A1;A2)-SI(MOD(A1;A2)<0;A2;0)
    Encore plus simplement :
    Il doit sans doute y avoir une bonne dizaine d'autres formules pour obtenir ce résultat.

  4. #4
    Membre à l'essai
    Homme Profil pro
    statisticien (retraité)
    Inscrit en
    Mai 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : statisticien (retraité)

    Informations forums :
    Inscription : Mai 2017
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Encore plus simplement :
    Effectivement... Merci !

  5. #5
    Membre expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Points : 3 554
    Points
    3 554
    Billets dans le blog
    1
    Par défaut
    Bonjour ,
    Dans les exemples ci-dessous, les formules des colonnes C et D semblent fonctionner dans tous les cas. Celles traditionnellement utilisées semblent ne fonctionner que pour des diviseurs positifs quel que soit le signe du dividende.
    Nom : Reste.JPG
Affichages : 1902
Taille : 23,3 Ko
    La formule de C2 est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ENT(PLANCHER.MATH(A2;B2)/B2)
    La formule de D2 est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =A2-B2*ENT(PLANCHER.MATH(A2;B2)/B2)
    Cordialement
    Claude

  6. #6
    Membre expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Points : 3 554
    Points
    3 554
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Toutes mes excuses mais je devais somnoler quand j'ai envoyé ma proposition précédente. PLANCHER.MATH(dividende;diviseur) étant un multiple de diviseur,
    le quotient PLANCHER.MATH(dividende;diviseur) / diviseur est entier et il n'est pas nécessaire de faire appel à la fonction ENT.
    Une formule donnant dans tous les cas un quotient euclidien est donc simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = PLANCHER.MATH(dividende;diviseur) / diviseur
    et une formule donnant dans tous les cas le reste est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = dividende - PLANCHER.MATH(dividende;diviseur)
    Mais une formule plus simple et toujours valable pour calculer le reste est celle de Menhir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = MOD ( dividende ; ABS(diviseur) )
    et une formule pour le quotient euclidien est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = SIGNE(diviseur) * ENT (dividende / ABS(diviseur) )
    Cordialement
    Claude

Discussions similaires

  1. [AC-2007] Diviser avec la Fonction MOD()
    Par Nounours1 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 14/01/2010, 23h00
  2. Division euclidienne polynomiale (avec modulos)
    Par Batoche dans le forum Mathématiques
    Réponses: 5
    Dernier message: 18/12/2006, 15h03
  3. division euclidienne de polynôme
    Par gronaze dans le forum Mathématiques
    Réponses: 1
    Dernier message: 29/06/2006, 21h53
  4. fonction équivalente à la fonction MOD (oracle) dans ms-sql
    Par rodrigue50 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/07/2005, 17h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo