Problème de modulo
Résolu
oz@work
Messages postés
127
Date d'inscription
Statut
Membre
Dernière intervention
-
oz@work Messages postés 127 Date d'inscription Statut Membre Dernière intervention -
oz@work Messages postés 127 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Pour une fois, je pose une question:
J'ai les données suivantes:
- base : est un entier supérieur à 5
- DIVIS : = FACT(base-4)/FACT(base-5)
Dans la colonne G, j'ai la formule suivante:
G1=1
G2=1+MOD(ENT(LIGNE(G1)/DIVIS);base-3)
G3=1+MOD(ENT(LIGNE(G2)/DIVIS);base-3)
et ainsi de suite.
Si ma base est inférieure à 52, je n'ai aucun soucis avec cette colonne G.
Mais si ma base est supérieure, le modulo se "trompe" une fois.
Si base=53, DIVIS=FACT(49)/FACT(48)=49
J'obtiens donc "1" dans [G1:G49]
Or, ma formule en G50 est:
G50=1+MOD(ENT(LIGNE(G49)/DIVIS);base-3)
Or ligne(G49)=49 >> 49/DIVIS=49/49=1 >> ent(1)=1 >> mod(1;50)=1 >> 1+1=2
Cependant, j'obtiens "1" en G50 mais bien "2" en G51
Plus étonnant, en G99, j'obtiens bien le changement voulu car j'ai bien "3".
Voici mon fichier: https://www.cjoint.com/c/DLwgvN9t8Cj
Merci d'avance pour votre aide ;)
Pour une fois, je pose une question:
J'ai les données suivantes:
- base : est un entier supérieur à 5
- DIVIS : = FACT(base-4)/FACT(base-5)
Dans la colonne G, j'ai la formule suivante:
G1=1
G2=1+MOD(ENT(LIGNE(G1)/DIVIS);base-3)
G3=1+MOD(ENT(LIGNE(G2)/DIVIS);base-3)
et ainsi de suite.
Si ma base est inférieure à 52, je n'ai aucun soucis avec cette colonne G.
Mais si ma base est supérieure, le modulo se "trompe" une fois.
Si base=53, DIVIS=FACT(49)/FACT(48)=49
J'obtiens donc "1" dans [G1:G49]
Or, ma formule en G50 est:
G50=1+MOD(ENT(LIGNE(G49)/DIVIS);base-3)
Or ligne(G49)=49 >> 49/DIVIS=49/49=1 >> ent(1)=1 >> mod(1;50)=1 >> 1+1=2
Cependant, j'obtiens "1" en G50 mais bien "2" en G51
Plus étonnant, en G99, j'obtiens bien le changement voulu car j'ai bien "3".
Voici mon fichier: https://www.cjoint.com/c/DLwgvN9t8Cj
Merci d'avance pour votre aide ;)
A voir également:
- Modulo 97 excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
3 réponses
Bonjour,
Ça ne doit pas fonctionner non plus pour 46, 56, 60, 61, 83, 90, 95, 99, 101...
Ta formule en $A$14 ne sert à rien puisque n!/(n-1)! = n
Remplace la par =base-4.
cordialement
Ça ne doit pas fonctionner non plus pour 46, 56, 60, 61, 83, 90, 95, 99, 101...
Ta formule en $A$14 ne sert à rien puisque n!/(n-1)! = n
Remplace la par =base-4.
cordialement
Bonjour,
Il s'agit d'une erreur engendrée par la précision du calcul FACT(base-4)/FACT(base-5).
49/(FACT(49)/FACT(48)) renvoie 0,999999999999999
et ENT(49/(FACT(49)/FACT(48))) renvoie 0.
Pour le calcul de DIVIS, tu peux utiliser =ARRONDI(FACT(base-4)/FACT(base-5);0)
A+
Il s'agit d'une erreur engendrée par la précision du calcul FACT(base-4)/FACT(base-5).
49/(FACT(49)/FACT(48)) renvoie 0,999999999999999
et ENT(49/(FACT(49)/FACT(48))) renvoie 0.
Pour le calcul de DIVIS, tu peux utiliser =ARRONDI(FACT(base-4)/FACT(base-5);0)
A+
Merci à vous deux!
En effet, bizarrement, la précision laisse à désirer sur certains calculs.J'ai donc modifié ma formule en A14 par base-4 puis, dans le reste du tableau (que je ne vous avez pas fourni), mes autres DIVIS deviennent base*(base-1)*(base-2)*...(base-n) au lieu de fact(base)/fact(base/n).
Bonne journée à vous et bonnes fêtes de fin d'année ;)
En effet, bizarrement, la précision laisse à désirer sur certains calculs.J'ai donc modifié ma formule en A14 par base-4 puis, dans le reste du tableau (que je ne vous avez pas fourni), mes autres DIVIS deviennent base*(base-1)*(base-2)*...(base-n) au lieu de fact(base)/fact(base/n).
Bonne journée à vous et bonnes fêtes de fin d'année ;)