import numpy as np def get_dynamic_values(): # Simule la récupération des valeurs dynamiques. 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, rejected_values, threshold=10): if len(values) == 0: return [new_value], rejected_values old_mean = np.mean(values) # Calcul de la moyenne actuelle print(f"Ancienne moyenne: {old_mean}") if new_value in rejected_values: # Si la nouvelle valeur a été rejetée précédemment, l'accepter maintenant values.append(new_value) rejected_values.remove(new_value) print(f"Valeur {new_value} acceptée après rejet initial") else: # 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) # Calcul de la nouvelle moyenne print(f"Nouvelle moyenne avec la nouvelle valeur: {new_mean}") # Vérifier si la nouvelle valeur change significativement la moyenne difference = abs(new_mean - old_mean) print(f"Différence entre les moyennes: {difference}") if difference > threshold: # Rejeter temporairement la nouvelle valeur rejected_values.add(new_value) values.pop() # Retirer la nouvelle valeur print(f"Valeur {new_value} rejetée temporairement") else: print(f"Valeur {new_value} acceptée") return values, rejected_values # Tableau pour stocker les dernières valeurs last_values = [10, 10, 10] rejected_values = set() # Nouvelles valeurs à recevoir new_values = [30, 30] for new_value in new_values: print(f"Nouvelle valeur récupérée: {new_value}") last_values, rejected_values = update_values(last_values, new_value, rejected_values) print(f"Valeurs mises à jour: {last_values}\n") # Afficher le tableau final print(f"Tableau final des valeurs: {last_values}")