Proche voisin

On souhaite programmer une fonction donnant le point d'une liste de points le plus proche d'un point de départ. Les points sont tous à coordonnées entières. Les points sont donnés sous la forme d'un tuple de deux entiers qui sont leurs coordonnées (dans un repère orthonormé). La liste des points à traiter est donc un tableau de tuples.

On rappelle que la distance entre deux points du plan de coordonnées \((x; y)\) et \((x'; y')\) est donnée par la formule :

\(d=\sqrt{(x-x')^2+(y-y')^2}\)

On importe pour cela la fonction racine carrée (sqrt) du module math de Python.

Exemples

Python Console Session
>>> distance((1, 0), (5, 3))
5.0
>>> distance((1, -4), (6, 8))
13.0
>>> proche_voisin([(7, 9), (2, 5), (5, 2)], (0, 0))
(2, 5)
>>> proche_voisin([(7, 9), (2, 5), (5, 2)], (5, 2))
(5, 2)

Compléter le code des fonctions distance et proche_voisin fournies ci-dessous pour qu’elles répondent à leurs spécifications.

Attention

Il est interdit d'utiliser min

Compléter le code ci-dessous

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein Ă©cran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.127797.128013.9888.65039iEgh0)/=315dr:2.nq8(P ;àkcê4lL9-m]IoDuûé_èA+7vTetybf[C*pwSs,xaR6050p0Z0!0;0e0G0.0z0D0G0;0.0.0l010!0e0+010406050.0P0K0K0;0q0#040-0N0G0P170N0u0z020;0K0+0A0z0=0Z1h0q0v0P0Z0.050k1e1g1i1k1c0+04051P1I1S0k1P1c0p0e0X0 111315110u0g0P0;0g0Z0J0+0#0!0h1r0z0h0e0g0h0G1{0h0!1a050`0$0G0Z1#1214011`1|1~1|0!2426220!0q1Q1?0 1n0.0+0;0u150s01281%010%0|0Z0u1v0Z222q2s2x2a2A262D0K2F040b0z0y0q0N0+0N0.0e1q1s0^2o0q0q0Z0D2!1I2H0u1Q0k1?2:2k2m2l230p2J1(0e0u2C2X221Y1!10292}2 0u0N33220+2)1Q2.2:3g1d2r1s352y390q1h0G220;1_2)0%15030S0S0D3a0Z1~380N0J0n3H1a0z0n1I0;3h3k1b3j2I3m2a3o3q3s3u0Z3w013y3A3C3E303H0J2v040z0s3N3P2s3R2.2|013W0;3r1Q3t0h3v3x3z3B0^3*393,0m3K0m3=2-3Q1c3_3U153|3~0540423$443)2~3+3I0F3K0F4d1J4f3S3l1$3V0N3p3}3Y413!433(464s483I0o3K0o4y3g4g3k3`4k4I4o3%453D4O3G3I0?3K0?4U4A4h4D4j4F3X3 3Z3#4$4r3F3,0W3K0W4/3@4W3T4=3{4@4H4_4J4{4q4N4~3I0w3K0w532/554C36584G4l4n4K4p4M4(5g0J0I3K0I5l3^4X4i5q4^4m4`4L4%474*3H0i1a0n0i5D5n4Y595s5K5v5M4)3,0n0n5R3M0k3O4e544B5W5r4!5u4|5f4t3H3.0n3;5,3?5m5:5G4Z5b4#5e5x5`0n4a046a5U6257645J5c5L4}694v6c4x5 5.614;5p6h5t5d5w5N5%4R6c4T6q4z3@1T3e1I332?0p2m2{5G4%321Z1Q3d0Z3f3Q6r1Q4%6W2I0e0p153z2.5%3Y6%6)6y5$3I5)0z2N0Z6/5#5y5)2:5-6t2y0C0u1a0%2U0K6Y6f5p0,3K78703V73041h1?7d5F577b3/7k565p721a0e1w4F0!6Y0z793n1a0.0v0q7x6F2/0z7J7J7A2a0D6}030z7u2W7F0z2$110z0%1r2+0e1^0q0;0D4s0 1i0q0R0Z6Y1c7H6#1s6.016*3k3,3.5J7_676z3I2v6@2E6`6l4P3-225 7=3i3_800S6+3I6b7 6(7`6:5y4a852O875_898k6q7e150C1a0^0%7p5o2y7n7z7?7M4j0%8B0e0.0`0u0D7:8J8y0119040x8E4Y1a2W2~0!0S5+8e7l5p8X0/7y8K3{8$0N8(0S5~8,7q2y8X0j0r7;8!8g8i0J6n8l8t68894v8r6_8n6{5`978x8-8G3K7K8!5G0.0p1a021E0N0!0A9t0P9v9x9u9w0z0)3}0D0P260z0_0z2)0u0X8^277X1Y8P2s8S9K0u2k270^0P0:0z8%9Y0.0t1t9C9B9z9w9y9A928U4X947|4Q6-8m816;0J4R9d9982a18b3O7K7z8V8A042)0!0P0q0u8;8V7g7D7F9o578X0x8Z9^8}3V8@8_8+6X8V8X0(ao5p0K0e1a5Tat8F2a8X0Laj9k2a0N1a0JaOau4jaw9Y8`aD8~1aaCaJ3`aFaHa!aL1a0L0ja,15aR040*0*a;01a*048{3QaaaPa=1a0VaUaK15aqa`7g9)8)ay6GaAa$a`a|bd2/8=aMb53`a?aT7?b0aV8?04bbaZa(5GaBbhaG6ca`aMa:by57a?a^bB1aa~beb18W1abG4V939~8h9{0J4,4_8g9g894,a39f885ObZ3=8daz9_bV9550b!bVb$5O50b)9 5yb@4dab8B3!a`8Hb98Mbv2U0D0h0Z0S9P8O2~bE1aas8|b6bu24ci048:br8=7g0^2ranbH8.bR917?b/bO6$b=bX5ib^a4a05ib}8o5`cIc1bP8H9ncy2y9q9s9.9=9;9.1z2Ccf9R27bb7V0P0z2h0Z0;c.240z0.272k0N0P0X2s0!0z0B0z7X0+1o0~3Bag0!9!8O8Q9W0pc.c,cv1i0!0tc!9/9Adm9@cl7RcG2s3,5AcJb*8u5O5AcNb`dva73/9nakaX7G3gbscma?0lbn631acocVa-04a%dr5Ga|aIdYapa.dqb:cF6/955S9}cK6|5QdCb+5%5Q6~dG7LdI7h2~0S9TdKa 8=dOdQ6g8N9U8R8Td$cz8Yb9dJcpcrdLctc3cwe2cEcm8 d)eodsd,bX5(d/dy9a5Oewd?dz5%6}3=a98=ac7Z0qe66u7teM2y0N7nchcsak0$1a7(1*ebe3bfeedU15bieheP3VeW042Mcpckd*cm7gdTeca#040j90erbk8fdt0u5%7~3tb#d@6=846^d:697~5 a9eHc2040e8DeUbPcudc9Ve!esbzcjef04e_e?3`bAe(bu0ecp0Leie#fneldjcpbSfHbta?020G9we,aWd~0ue0dccpcBbTa(9`du6=8kf6b_f83H8qfbeya56adFfgf^dM8#bv8^9YfT01e5fmbte^0;0$cpdXfydRfjfEe 7@et8nd-97f+fc890n9cf:b~6mf@f_fhfIfVfX8Pf g1ejd}e1fqe;fvfxfsd%dWfvfDfBaMfG3@f`gadicxe`dVfM5/f$f26Aexgpgla2gocOg%grd|bPacaeagaig2e@egcC780k6!6H6V6J6S1I0!6Mh12_2;g5262:6K1Oge5G2)0K0S0%0;0Ccd0h6b1A1C1E1G0zf!6X1V3R333`0;0p0K1r2Z7$2#2s1.0q1a1OhxhzhB2!0J170!2i040U2g2C2,huhb0c0d0aaac{1*040M0G7Yc=d0g50.1n1fhV0z0R0X2Z0Z0q7V273B1w1ih{h}9$7Y0G9v8Q0!0~hV2)9K9$0t2-h%0g2:1W0@1ZhKhA0uhC1^0Z0:1vd52PhJ5Ghyioiqf3hPhR0f0:1Biv1Thvim5G1)1+1-1/1;3B1s2c1}1 21hc572L2C2E1a0y1=1@1s0)1rh:9J0-1G2Y1r786U7@606Z3Cgef%f30s3Jdxg$3Gj06?g)dDj52w6j5!d@j9d`8=0g8X020g9;jk9xjm8IgUe)c80i0tbj7o8Va?b4g?a)js0tbN7Ie49sjmf 0KjC4cg_gYeuduj0f5gfj33-8aeCezjV84jb5^jYjRdFjga?0Y0q1Fgd5:i~jVf*jTg*j40Jf/86f;5$j08qj#jUj j)8VjhjHjlk81ybhjCjvgQbIb3jJjCjE3RjOgg7|j0gij@j8962wj7jdks5Zj$6zkok4bP0ga?jt0m0ikHkIkJkK6pf#3ig{i|g}h96S7=ha1R040O2sd79Lish{7*9W26d70N4F0p1r0u7/0~0^0~bb0~h:9Yc^0P0+2W0.k;9X170T2)0.0/0z1h8Od3h~9G9Ih}7Vfpea0z0;0X2*d33t7(7*2 7,2(7/7Vk/9!hq0%i62gc l60z1E0e0z9Pk{0E9Z2oi07.0~d20p00h-l56@0N0K0$l5ifhXkW0yc|h|2klk0{0G26h|lklmk?l20eh{lD0|ljag0{d0hhl-c.h cwi2k*lslOh}k=lh8SlDl:0Dh@h_0^1gh?l=k^lf3Bk-k/l1hV0el41G9,0HhqgCea0~0Ri8m8lVlXlUk hC0%lD9J3d0N250T2Ol{7(2Z9(0Q0zlKiclOh;lj2~2Yl!ik0kkVm*0_l,0.04.