From 0a5ec570d43e11323d04aab1e7099c6d74976f17 Mon Sep 17 00:00:00 2001 From: "mathis.philippot" Date: Fri, 16 May 2025 14:00:49 +0200 Subject: [PATCH 1/2] =?UTF-8?q?Les=203=20fonction=20n=C3=A9cessaire=20aux?= =?UTF-8?q?=20k=20plus=20proches=20voisin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- k_plus_proche.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 k_plus_proche.py diff --git a/k_plus_proche.py b/k_plus_proche.py new file mode 100644 index 0000000..4688802 --- /dev/null +++ b/k_plus_proche.py @@ -0,0 +1,26 @@ +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): + somme=0 + if k > len(lst_tri): + k = len(lst_trie) + for i in range(0,k): + somme=somme+lst_ref(lst_trie[i](1)) + return somme/k + \ No newline at end of file From 38a39d685774ecd6feec77cf0196822ca1d9bc5e Mon Sep 17 00:00:00 2001 From: "philippot.m" <> Date: Fri, 16 May 2025 14:29:46 +0200 Subject: [PATCH 2/2] =?UTF-8?q?Toutes=20les=20fonction=20sont=20op=C3=A9ra?= =?UTF-8?q?tionnel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- k_plus_proche.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/k_plus_proche.py b/k_plus_proche.py index 4688802..701aa38 100644 --- a/k_plus_proche.py +++ b/k_plus_proche.py @@ -11,16 +11,17 @@ def kPlusProche(point,lst_representative): 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] ) + 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): +def PuissanceMoyenne(lst_trie,k,lst_ref): somme=0 - if k > len(lst_tri): + if k > len(lst_trie): k = len(lst_trie) for i in range(0,k): - somme=somme+lst_ref(lst_trie[i](1)) + somme=somme+lst_ref[lst_trie[i][1]][1] return somme/k - \ No newline at end of file +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)]) \ No newline at end of file