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

.65039.9888.128013.127797Eg[ r;)/(lDo4,6Ib=ax+5uûtP7e-h0TmnCkê:Séq.èy1cd32à8_wvLpf*9RA]is050Y0F0C0w0=0n0?0h0X0n0w0?0?0v010C0=0+010406050?0A0K0K0w0i0V040Q0p0n0A170p0L0h020w0K0+0j0h0/0F1h0i0S0A0F0?050l1e1g1i1k1c0+04051P1I1S0l1P1c0Y0=0)0 111315110L0f0A0w0f0F0G0+0V0C0H1r0h0H0=0f0H0n1{0H0C1a050`0u0n0F1#1214011`1|1~1|0C2426220C0i1Q1?0 1n0?0+0w0L150!01281%010,0|0F0L1v0F222q2s2x2a2A262D0K2F040c0h0D0i0p0+0p0?0=1q1s0^2o0i0i0F0X2!1I2H0L1Q0l1?2:2k2m2l230Y2J1(0=0L2C2X221Y1!10292}2 0L0p33220+2)1Q2.2:3g1d2r1s352y390i1h0n220w1_2)0,15030%0%0X3a0F1~380p0G0W3H1a0h0W1I0w3h3k1b3j2I3m2a3o3q3s3u0F3w013y3A3C3E303H0G2v040h0!3N3P2s3R2.2|013W0w3r1Q3t0H3v3x3z3B0^3*393,0Z3K0Z3=2-3Q1c3_3U153|3~0540423$443)2~3+3I0q3K0q4d1J4f3S3l1$3V0p3p3}3Y413!433(464s483I0z3K0z4y3g4g3k3`4k4I4o3%453D4O3G3I0s3K0s4U4A4h4D4j4F3X3 3Z3#4$4r3F3,0E3K0E4/3@4W3T4=3{4@4H4_4J4{4q4N4~3I0$3K0$532/554C36584G4l4n4K4p4M4(5g0G0.3K0.5l3^4X4i5q4^4m4`4L4%474*3H0I1a0W0I5D5n4Y595s5K5v5M4)3,0W0W5R3M0l3O4e544B5W5r4!5u4|5f4t3H3.0W3;5,3?5m5:5G4Z5b4#5e5x5`0W4a046a5U6257645J5c5L4}694v6c4x5 5.614;5p6h5t5d5w5N5%4R6c4T6q4z3@1T3e1I332?0Y2m2{5G4%321Z1Q3d0F3f3Q6r1Q4%6W2I0=0Y153z2.5%3Y6%6)6y5$3I5)0h2N0F6/5#5y5)2:5-6t2y0N0L1a0,2U0K6Y0h6f6u73041h1?787a717c0=1w4F0C7g703V1a0?0S0i7n6F2/0h7y7y7h2a0X6}030h7k2W7u0h2$110h0,1r2+0=1^0i0w0X4s0 1i0i0R0F6Y1c7w6#1s6.016*3k3,3.5J7+676z3I2v6@2E6`6l4P3-225 7%3i3_7=0%6+3I6b7;6(7,6:5y4a7`2O7|5_7~896q7p150N1a0^0,7o5F6g0,8q0=0?0`0L0X7#7(7B1519040m6Y8F3{1a2W2~0C0%5+838u5p8H0r8t566u8N0p8P0%5~8T8Z2y8H0k0P7$8K848b7-2s3,6n8a8i687~4v8g6_8c6{5`8`8m8U2y0(3K7z8;972a0?0Y1a021E0p0C0j9i0A9k9m9j9l0h0M3}0X0A260h0_0h2)0L0)8$277M1Y8z2s8C9z0L2k270^0A0x0h8O9N0?0T1t9r9q9o9l9n9p8:8E8=6/870G6B8{927}5O4R908|7@9.803O7z798n018p042)0C0A0i0L8Y5o3n7r7t7v8*aa2a8H0m8J9*9d4j8#8%8S6Xa08H0g9c8+2a0K0=1a5Talaw8G1a0;a93`0p1a0GaH63ao9N8(avagaE04auaCaS01ayaAaR3`8H0;0ka#5GaJ040-0-a*57aZ048)3Q9 am01a,0yaM57aia:8!049U8Qaq6Gas1aaVaf3`a=b62/8La%a~5pa,aL7(a_aD8Mb38$aPa@b7a`atb12ybdbxahaFa)aWaI1aa.bA15a=btbfb804bD4Va#859-4,4_85937~4,9^9;8j5ObU3=82ar4XbS7.3I50bV8?8d5`50b!7?6;0Gb:4da0a28rbi3n8wb32U0X0H0F0%9E8y2~bI01b0bEaN0424ce8Wc27q040^2r7ucl1a8.9)bbb-8^5h6-b=bX5O5ib_b?7~5i6~7)3`993/9bch579f9h9Z9%9$9Z1z2Ccb9G27b47K0A0h2h0F0wc)240h0?272k0p0A0)2s0C0h0#0h7M0+1o0~3Ba60C9P8y8A9L0Yc)c%cq1i0C0TcV9!9pdhcwb+6$b=9-5Ab;9_b{5AcGcD3,dq3=9~8L7cb4cn15a,0vdEbpckcQ8Vb9cea=aBbb5Gbh7(b*budn9,b.5PcBds6|5Qdv9=5%5QcKdAa07cay0L0%9Iaea^8LdGdI7cd@9K8DdRa 1aake1b2dDdL8,1a8XbmdB8q0Fcrd^dWaX8-dlei7GdodZ5(d#b#8}5Oeqd)b$5%6}dz9bb 744Fd|1a0=dI0pcNcdecd/0u1a7T1*e0d_bNe4dmaXbze8bB04eb3gbnaX0LeO042Mct8Ice7cdKe5e9bOcvdUbReocz5{erb`6|7_6^d$697:5 9~d.a`a20=8seMa`d}d7d e.eVemcie=eWa$dNeZan04eHfrcfaFe$eTffeeege.bPfzboa,020n9leF7d2~d?d7e.8/e`bEcy0L5%893tbWd*6=8ff3es9`6a9|cOf8f8edbq8PeI1adHfeboe;0w0ue.bafocifue?e!aGfScxe|fV6=8`fYcCf!3H8 f%f06mf+f-f-f/d;fO8zf=04f@e%f/d~8BeSfle2e/fvf`f|fvbwgBeGe.0;fy3@e(4YfBdefDelbMb,g76Ae cHeu9@gggXgVd-eBfaeP0_a6a8f^e)aOeh618E0l6!6H6V6J6S1I0C6Mg}2_2;f{262:6K1OcL5G2)0K0%0,0w0Nc90H6b1A1C1E1G0hfR3i1V3R333`0w0Y0K1r2Z7R2#2s1.0i1a1Ohthvhx2!0G170C2i040:2g2C2,hqh70b0a0d9 c?1*040t0n7Nc-c{f{0?1n1fhR0h0R0)2Z0F0i7K273B1w1ih@h_9R7N0n9k8A0C0~hR2)9z9R0T2-hZ0f2:1W0@1ZhGhw0Lhy1^0F0x1vd02PhF5GhuikimfVhLhN0e0x1Bir1Thrii5G1)1+1-1/1;3B1s2c1}1 21h8572L2C2E1a0D1=1@1s0M1rh,9y0Q1G2Y1r8K6U7)606Z3CcLfU3-3Jdrf(5$0!3Jeweti{6?6j5!d*j0ez96bo0f8H020f9$jg9mji79fv0Kc40I0Tbe3/d`1aa}g.bcjo0TbLjsa0fHjidIjnaA0T4cg5foi`j07:gbf448jN2wg!dwjS5Z5^j3jScK8L0fa,0J0i1FgRi_gUj0fXenjQ3Gj/jT7{i~4~j@jXghjR0G8l6 a`jd9hjijfjh9sdOjyjrgMa+jujFjyjAdVgSdX8c6+j0gaj;j`3+koj^8hkrj 8 j6jY6zktj#a0j%jH0Z0IkIkJkKkL6pbQg?g^1V6I0lh6g{0)3R1P0o2sd29Aioh@7V9L26d20p4F0Y1r0L7!0~0^0~b40~h,9Nc:0A0+2W0?k=9M170U2)0?0r0h1h8yc~h`9v9xh_7Kfhgw0h0w0)2*c~3t7T7V2 7X2(7!7Kk:9Phm0,i22gc`l70h1E0=0h9Ek|0O9O2oh|7Z0~c}0Y00h)l66@0p0K0ul6ibhT1R040Dc@h^2kll0{0n26h^lllnk@l30=h@lE0|lka60{c{hdl/c)h{crh~k+ltlPh_k?li8ClEl=0Xh:h=0^1gh/l@k_lg3Bk.k:l2hR0=l51G9X0*hmgvmdh:i4malWlYlVl0hy0,lE9y3d0p250U2Ol}7T2Z9T0B0hlLi8lPh-lk2~2Yl#igkT6S7%0^0`0|0?04.