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
.65039.9888.127797.128013C;=wSd*-gnh.+uerv6x,é9tàkè5bE]l[ûf:D431(AaRIp/)omq 7ê2iyc8s_LPT0050j0s0A0T0*0I0.0$0,0I0T0.0.0g010A0*0W010406050.0r0!0!0T0t0+040i0Z0I0r170Z0n0$020T0!0W0f0$0U0s1h0t0#0r0s0.050X1e1g1i1k1c0W04051P1I1S0X1P1c0j0*0u0 111315110n0m0r0T0m0s0l0W0+0A0o1r0$0o0*0m0o0I1{0o0A1a050`0F0I0s1#1214011`1|1~1|0A2426220A0t1Q1?0 1n0.0W0T0n150)01281%010L0|0s0n1v0s222q2s2x2a2A262D0!2F040d0$0;0t0Z0W0Z0.0*1q1s0^2o0t0t0s0,2!1I2H0n1Q0X1?2:2k2m2l230j2J1(0*0n2C2X221Y1!10292}2 0n0Z33220W2)1Q2.2:3g1d2r1s352y390t1h0I220T1_2)0L15030/0/0,3a0s1~380Z0l0Q3H1a0$0Q1I0T3h3k1b3j2I3m2a3o3q3s3u0s3w013y3A3C3E303H0l2v040$0)3N3P2s3R2.2|013W0T3r1Q3t0o3v3x3z3B0^3*393,0P3K0P3=2-3Q1c3_3U153|3~0540423$443)2~3+3I0O3K0O4d1J4f3S3l1$3V0Z3p3}3Y413!433(464s483I0E3K0E4y3g4g3k3`4k4I4o3%453D4O3G3I0v3K0v4U4A4h4D4j4F3X3 3Z3#4$4r3F3,0%3K0%4/3@4W3T4=3{4@4H4_4J4{4q4N4~3I0-3K0-532/554C36584G4l4n4K4p4M4(5g0l0z3K0z5l3^4X4i5q4^4m4`4L4%474*3H0?1a0Q0?5D5n4Y595s5K5v5M4)3,0Q0Q5R3M0X3O4e544B5W5r4!5u4|5f4t3H3.0Q3;5,3?5m5:5G4Z5b4#5e5x5`0Q4a046a5U6257645J5c5L4}694v6c4x5 5.614;5p6h5t5d5w5N5%4R6c4T6q4z3@1T3e1I332?0j2m2{5G4%321Z1Q3d0s3f3Q6r1Q4%6W2I0*0j153z2.5%3Y6%6)6y5$3I5)0$2N0s6/5#5y5)2:5-6t2y0C0n1a0L2U0!6Y6f5p0h3K78703V73041h1?7d5F577b3/7k565p721a0*1w4F0A6Y0$793n1a0.0#0t7x6F2/0$7J7J7A2a0,6}030$7u2W7F0$2$110$0L1r2+0*1^0t0T0,4s0 1i0t0y0s6Y1c7H6#1s6.016*3k3,3.5J7_676z3I2v6@2E6`6l4P3-225 7=3i3_800/6+3I6b7 6(7`6:5y4a852O875_898k6q7e150C1a0^0L7p5o2y7n7z7?7M4j0L8B0*0.0`0n0,7:8J8y0119040R8E4Y1a2W2~0A0/5+8e7l5p8X0x7y8K3{8$0Z8(0/5~8,7q2y8X0Y0M7;8!8g8i0l6n8l8t68894v8r6_8n6{5`978x8-8G3K7K8!5G0.0j1a021E0Z0A0f9t0r9v9x9u9w0$0e3}0,0r260$0_0$2)0n0u8^277X1Y8P2s8S9K0n2k270^0r0w0$8%9Y0.0p1t9C9B9z9w9y9A928U4X947|4Q6-8m816;0l4R9d9982a18b3O7K7z8V8A042)0A0r0t0n8;8V7g7D7F9o578X0R8Z9^8}3V8@8_8+6X8V8X0Jao5p0!0*1a5Tat8F2a8X0Haj9k2a0Z1a0laOau4jaw9Y8`aD8~1aaCaJ3`aFaHa!aL1a0H0Ya,15aR040k0ka;01a*048{3QaaaPa=1a0qaUaK15aqa`7g9)8)ay6GaAa$a`a|bd2/8=aMb53`a?aT7?b0aV8?04bbaZa(5GaBbhaG6ca`aMa:by57a?a^bB1aa~beb18W1abG4V939~8h9{0l4,4_8g9g894,a39f885ObZ3=8daz9_bV9550b!bVb$5O50b)9 5yb@4dab8B3!a`8Hb98Mbv2U0,0o0s0/9P8O2~bE1aas8|b6bu24ci048:br8=7g0^2ranbH8.bR917?b/bO6$b=bX5ib^a4a05ib}8o5`cIc1bP8H9ncy2y9q9s9.9=9;9.1z2Ccf9R27bb7V0r0$2h0s0Tc.240$0.272k0Z0r0u2s0A0$0B0$7X0W1o0~3Bag0A9!8O8Q9W0jc.c,cv1i0A0pc!9/9Adm9@cl7RcG2s3,5AcJb*8u5O5AcNb`dva73/9nakaX7G3gbscma?0gbn631acocVa-04a%dr5Ga|aIdYapa.dqb:cF6/955S9}cK6|5QdCb+5%5Q6~dG7LdI7h2~0/9TdKa 8=dOdQ6g8N9U8R8Td$cz8Yb9dJcpcrdLctc3cwe2cEcm8 d)eodsd,bX5(d/dy9a5Oewd?dz5%6}3=a98=ac7Z0te66u7teM2y0Z7nchcsak0F1a7(1*ebe3bfeedU15bieheP3VeW042Mcpckd*cm7gdTeca#040Y90erbk8fdt0n5%7~3tb#d@6=846^d:697~5 a9eHc2040*8DeUbPcudc9Ve!esbzcjef04e_e?3`bAe(bu0*cp0Heie#fneldjcpbSfHbta?020I9we,aWd~0ne0dccpcBbTa(9`du6=8kf6b_f83H8qfbeya56adFfgf^dM8#bv8^9YfT01e5fmbte^0T0FcpdXfydRfjfEe 7@et8nd-97f+fc890Q9cf:b~6mf@f_fhfIfVfX8Pf g1ejd}e1fqe;fvfxfsd%dWfvfDfBaMfG3@f`gadicxe`dVfM5/f$f26Aexgpgla2gocOg%grd|bPacaeagaig2e@egcC780X6!6H6V6J6S1I0A6Mh12_2;g5262:6K1Oge5G2)0!0/0L0T0Ccd0o6b1A1C1E1G0$f!6X1V3R333`0T0j0!1r2Z7$2#2s1.0t1a1OhxhzhB2!0l170A2i040S2g2C2,huhb0b0a0caac{1*040V0I7Yc=d0g50.1n1fhV0$0y0u2Z0s0t7V273B1w1ih{h}9$7Y0I9v8Q0A0~hV2)9K9$0p2-h%0m2:1W0@1ZhKhA0nhC1^0s0w1vd52PhJ5Ghyioiqf3hPhR0G0w1Biv1Thvim5G1)1+1-1/1;3B1s2c1}1 21hc572L2C2E1a0;1=1@1s0e1rh:9J0i1G2Y1r786U7@606Z3Cgef%f30)3Jdxg$3Gj06?g)dDj52w6j5!d@j9d`8=0m8X020m9;jk9xjm8IgUe)c80?0pbj7o8Va?b4g?a)js0pbN7Ie49sjmf 0!jC4cg_gYeuduj0f5gfj33-8aeCezjV84jb5^jYjRdFjga?0=0t1Fgd5:i~jVf*jTg*j40lf/86f;5$j08qj#jUj j)8VjhjHjlk81ybhjCjvgQbIb3jJjCjE3RjOgg7|j0gij@j8962wj7jdks5Zj$6zkok4bP0ma?jt0P0?kHkIkJkK6pf#3ig{i|g}h96S7=ha1R040N2sd79Lish{7*9W26d70Z4F0j1r0n7/0~0^0~bb0~h:9Yc^0r0W2W0.k;9X170D2)0.0x0$1h8Od3h~9G9Ih}7Vfpea0$0T0u2*d33t7(7*2 7,2(7/7Vk/9!hq0Li62gc l60$1E0*0$9Pk{0(9Z2oi07.0~d20j00h-l56@0Z0!0Fl5ifhXkW0;c|h|2klk0{0I26h|lklmk?l20*h{lD0|ljag0{d0hhl-c.h cwi2k*lslOh}k=lh8SlDl:0,h@h_0^1gh?l=k^lf3Bk-k/l1hV0*l41G9,0:hqgCea0~0yi8m8lVlXlUk hC0LlD9J3d0Z250D2Ol{7(2Z9(0K0$lKiclOh;lj2~2Yl!ik0XkVm*0_l,0.04.
 
  
  
                
              
             
# Tests(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)