from math import * def distance(point1,point2): d1=abs(point1[0]-point2[0]) d2=365-d1 return sqrt((min(d1,d2)**2)+((point1[1]-point2[1])**2)+((point1[2]-point2[2])**2)) def kPlusProche(point,lst_representative): """Paramètres d’entrée : Un tuple (Numéro du jour, Température moyenne, température de référence) correspondant au point à vérifier Une liste représentative du jeu de données original où chaque ligne contient un tuple (Numéro du jour, Température moyenne, Température de référence) et la consommation électrique Paramètres de sortie : Une liste triée en fonction de la distance dont les éléments sont des tuples (distance, indice du tableau original)""" voisins = [] for i in range(len(lst_representative)): d = distance (point, lst_representative[i][0] ) voisins.append((d, i)) voisins.sort() # Pour un couple, sort trie d'abord en fonction de la première valeur, donc la distance return voisins def PuissanceMoyenne(lst_trie,k,lst_ref): somme=0 if k > len(lst_trie): k = len(lst_trie) for i in range(0,k): somme=somme+lst_ref[lst_trie[i][1]][1] return somme/k