ioCode

Accumulation d'erreurs

Flottants • Exercices 1A

La start-up nation est forte et la bourse de Paris décide d'introduire un nouvel indice. D'une valeur initiale de 1000 €, ce nouvel indice va cristalliser toute l'attention des marchés.

Vous travaillez à la bourse de Paris et on vous donne pour mission de simuler l'évolution de cet indice. Pour des raisons marketing, il n'est pas possible d'afficher plus de 3 décimales de l'indice. Votre hiérarchie décide donc de ne conserver que les 3 premières décimales de l'indice dans les calculs. Dont acte. Vous programmez donc la simulation de cet indice, tout en gardant en tête vous cours sur la représentation des nombres réels par les flottants en tête.

  1. Écrire une fonction evolution(valeur: float) -> float qui renvoie la somme de la valeur donnée et d'une variation aléatoire comprise entre -0,05 et 0,05. Utiliser random.uniform(-0.05, 0.05). Cette fonction simule une évolution aléatoire de l'indice engendrée par le cours des actions.
  2. Écrire une fonction valeur_tronquee(valeur: float) -> float qui calcule la valeur tronquée à trois décimales. Utiliser la fonction math.trunc.
  3. Écrire une fonction simulation(valeur_debut: float) -> tuple[float, float] qui renvoie un tuple contenant la valeur exacte de l'indice et la valeur affichée après un million d'itérations. Sur deux ans, on estime à un million le nombre d'évolutions de l'indice. Que pensez-vous de l'idée de tronquer à 3 décimales ?

NB: cet exercice est fondé sur une histoire vraie, celle de l'indice de la bourse de Vancouver en 1982.

Langage
Console initialisée. En attente de l'interpréteur...