#######################################################################################################################################
#                                                                                                                                     #
#         T E S T   L I N E A I R E ,   T R I V I A L   E T   V I O L E N T   D E S   E R R E U R S   D ' A R R O N D I  :            #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xtp/AXmB.01$python' :                                                                                           #
#                                                                                                                                     #
#                     Jean-Francois COLONNA (LACTAMME, 20220129135515).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

B = 4095.1
A = B+1
                                        # D'ou :                                                                                      #
                                        #                                                                                             #
                                        #                   A - B = 1                                                                 #
                                        #                                                                                             #
                                        #                                                                                             #
                                        # On notera qu'ecrire (de facon plus logique...) :                                            #
                                        #                                                                                             #
                                        #                   A = 4096.1;                                                               #
                                        #                   B = A-1;                                                                  #
                                        #                                                                                             #
                                        # donne ("malheureusement"...) un resultat parfait (x=1)...                                   #

x0 = 1

x1 = A*x0 - B
x2 = A*x1 - B
x3 = A*x2 - B
x4 = A*x3 - B
x5 = A*x4 - B
x6 = A*x5 - B
x7 = A*x6 - B
                                        # Evidemment :                                                                                #
                                        #                                                                                             #
                                        #                   x1 = A*x0 - B                                                             #
                                        #                      = A*1  - B                                                             #
                                        #                      = A    - B                                                             #
                                        #                      = 1                                                                    #
                                        #                                                                                             #
                                        # et de meme :                                                                                #
                                        #                                                                                             #
                                        #                   x2 = x3 = x4 = x5 = x6 = x7 = 1                                           #
                                        #                                                                                             #
                                        #                                                                                             #
                                        # L'absence d'iteration ci-dessus est destinee a rendre le programme le plus simple et le     #
                                        # plus facilement lisible possible. On evite ainsi, en particulier, l'ecriture :              #
                                        #                                                                                             #
                                        #                   x = A*x - B                                                               #
                                        #                                                                                             #
                                        # qui ressemble trop a une equation et qui peut donc etre difficilement comprehensible        #
                                        # pour un non programmeur...                                                                  #
                                        #                                                                                             #
                                        #                                                                                             #
                                        # Du coup, ce programme possede deux proprietes exceptionnelles :                             #
                                        #                                                                                             #
                                        #    1-Il ne peut contenir ni d'erreurs(s) de logique, ni d'erreurs(s) de programmation !     #
                                        #                                                                                             #
                                        #    2-La valeur exacte des resultats {x1,x2,x3,x4,x5,x6,x7} est connue a l'avance (=1) !     #
                                        #                                                                                             #

print "x0 =",x0
print "x1 =",x1
print "x2 =",x2
print "x3 =",x3
print "x4 =",x4
print "x5 =",x5
print "x6 =",x6
print "x7 =",x7
                                        # Donne les resultats suivants :                                                              #
                                        #                                                                                             #
                                        #                   x0 =          1                                                           #
                                        #                   x1 =          1.0                                                         #
                                        #                   x2 =          1.00000000186                                               #
                                        #                   x3 =          1.00000763144                                               #
                                        #                   x4 =          1.03125915809                                               #
                                        #                   x5 =        129.040637438                                                 #
                                        #                   x6 =     524468.255009                                                    #
                                        #                   x7 = 2148270324.24                                                        #
                                        #                                                                                             #
                                        #                                                                                             #
                                        # Le probleme vient de la partie decimale (0.1) de 4095.1 car, en effet, elle demande une     #
                                        # infinite de "decimales" en binaire :                                                        #
                                        #                                                                                             #
                                        #                   0.0 0011 0011 0011 0011 0011 0011 0011 0011 0011 ... (ad infinitum)       #
                                        #                                                                                             #
                                        # et ne peut donc etre representee exactement dans un ordinateur...                           #



Copyright © Jean-François COLONNA, 2022-2023.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2022-2023.