Problème de modulo

Résolu/Fermé
oz@work Messages postés 127 Date d'inscription dimanche 2 novembre 2014 Statut Membre Dernière intervention 20 janvier 2015 - 22 déc. 2014 à 06:15
oz@work Messages postés 127 Date d'inscription dimanche 2 novembre 2014 Statut Membre Dernière intervention 20 janvier 2015 - 23 déc. 2014 à 14:16
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 ;)
A voir également:

3 réponses

JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
22 déc. 2014 à 08:24
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
1
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524
22 déc. 2014 à 09:57
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+
1
oz@work Messages postés 127 Date d'inscription dimanche 2 novembre 2014 Statut Membre Dernière intervention 20 janvier 2015 3
23 déc. 2014 à 14:16
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 ;)
0