import time
import numpy as np

def get_dynamic_values():
    # Simule la récupération des valeurs dynamiques.
    # Par exemple, elle pourrait lire des valeurs depuis un capteur ou une API.
    # Pour cet exemple, nous allons générer une valeur aléatoire.
    return np.random.normal(loc=50, scale=10)  # Valeur aléatoire avec une moyenne de 50 et un écart-type de 10

def update_values(values, new_value, threshold=3):
    if len(values) == 0:
        return [new_value]
    
    old_mean = np.mean(values)
    
    # Ajouter la nouvelle valeur et retirer la première valeur (si nécessaire)
    if len(values) >= 10:  # par exemple, une fenêtre de 10 valeurs
        values.pop(0)
    
    values.append(new_value)
    
    new_mean = np.mean(values)
    
    # Vérifier si la nouvelle valeur change significativement la moyenne
    if abs(new_mean - old_mean) > threshold:
        return values  # Accepter la nouvelle valeur
    else:
        values.pop()  # Rejeter la nouvelle valeur
        return values

# Tableau pour stocker les dernières valeurs
last_values = []

# Boucle principale
while True:
    new_value = get_dynamic_values()
    print(f"Nouvelle valeur récupérée: {new_value}")
    
    # Mettre à jour les valeurs avec la nouvelle valeur
    last_values = update_values(last_values, new_value)
    
    print(f"Valeurs mises à jour: {last_values}")
    
    # Attendre 5 secondes avant de récupérer la nouvelle valeur
    time.sleep(1)

