1 changed files with 27 additions and 0 deletions
@ -0,0 +1,27 @@ |
|||||
|
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] ) |
||||
|
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 |
||||
|
lst_trie=kPlusProche((1,2,6),[(1,5,9,8),(9,6,2,8),(3,5,6,42)]) |
||||
|
PuissanceMoyenne(lst_trie,1,[((1,5,9),8),((9,6,2),8),((3,5,6),42)]) |
Loading…
Reference in new issue