You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
1.2 KiB
26 lines
1.2 KiB
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
|