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
🐍 Console Python
>>> 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
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
.127797.65039.128013.9888Cy1-ê]/wi_qP+r 7û9fI;Rg2àh)(EpnD0ldT,*4ALkéebmc:35a=o[.8t6sSèuxv050M0V0,0$0m0L0.0s0Y0L0$0.0.0%010,0m0H010406050.0;0X0X0$0r0f040/0(0L0;170(0I0s020$0X0H0y0s0z0V1h0r0o0;0V0.050k1e1g1i1k1c0H04051P1I1S0k1P1c0M0m0?0 1113150D0m0A0D0L1*0D0,1a050`0W0L0V1#1214011)1+1-1+0,1?1^1;0,0r1Q0,0D0 1n0.0H0$0I150B011`1%010w0|0V0I1v0V1;2d2f2k1|2n1^2q0X2s040c0s0p0r0(0H0(0.0m1q1s0^2b0r0r0V0Y2N1I2u0I1Q0k292Z2628271=0M2w151-0I2p2K1;1Y1!101{2-0m2/0I0(2?1;0H2S1Q2X2Z341d2e1s2^2l2}0r1h0L1a0s0g2W381b372v3a1|3c3e3g0B3j2f3l2X2,013q0$3f040s0!3u2Y1c3x3o153A3C0s0Q3G3w383y3M3g0#3Q3I3S3K3z0(3d3B3g0-3X3m391$3p3$3r3D0t3+3J3.3L3:3(3D0+3@3Z3_3#3%3N0v3 3n413U040g0K463-2_423;0g3i1J3k3Y474f490g3t4k3v4m4e3b3{3C0g3F4s3H3,3T4x1a0g3P4B3R4n4w434G3W4J1T321I2?2$0M282+3!0Y2~2C0@1Z1Q310V333k3Q054!0^4,4L1|0T0I1a0w2H0X3Q0s4D3!0I4_041h294~50414^1a0m1w3$0,573^4o1a0.0o0r5f4J0s5p5p584f0Y0g1a030s5c2J5m0s2P110s0w1r2U0m1r0s0r0$0Y2{1_0Y1i0r0U0V3X4u3y0T1a0^0w5g404o0w5!0m0.0`0I0Y5V4Q5h2l19040F4.5?3p1a2J2{0,0n4j365|155^0O5%4?3L5~0(600n4r645(5@1a0E0Z4d3y0l3g5q5{6i1|0.0M1a021E0(0,0y6y0;6A6C6z6B0s0e3B0Y0;1^0s0_5L2p0?6d1_5E1Y5-2f5:6P0I261_0^0;0=0s5 6$0.0*1t6H6G6E6B6D6F3X5q4 65015Z042S0,0;0r0I694v5}045k5m6s6a015^0F5`5=6t6b046-61634-6~5^0)7d78150X0m1a4c7j7e5^0j773y0(1a0h7F516c6e6g7q7k7f1a7t7B7v017x7z7u3y7D0E7Z3!7H040P0P7%417X047O3v6}7Q7)0q7K417g7-5i7m6d6$627}6j047T6h7e7/7p3v5s847E5o8c1|7)7J8f6~537n6f831|7s8p7w7y4a8s7R040j7$7U7G1a7+8w7/7;2Y8g666k5W8J6 5!0V5$8k7Q0I5*7m2H0Y0D0V0n6T5,2{8w7|8B7L041?8)1a688S7e530^2e7c8+7{6k6m4J5X3!6p3D6r8{4f6v6x6=6_6^6=1z6S6U0s6O7n5C0;0s230V0$9k1?0s0.1_260(0;0?2f0,0s0C9g0$6,1o0~4!740,6(5,5.6!0M9k9i8^1i0,0*9a6?6F9V6{6r8l7M6$7`4f7)0%9(3b1a8.9584867P888u7A877V7D9Z5r9#542{0n6X5n347?7e9*9,79a36Z5;9`7!1a7iae8,7n8/048;a58N8@0V8_a49?9{8L8 6|8N705G0ra97l0maD010(928(8=7V0I0W1a5M0I0Aad3ka6av5_8F8u8a8I7r8:aGaN1a2zalahau3T9.0$0Wal0E6l9}6|aV5Y5b8Rao9 ab5/aT8ba$aX9:799/ai8|858w53aFb78K8yanaUap8Pasa?aG7)020L6Ba(1a7x0Ia29Lal8~3406a`bEa{aj80at7=8Na8aLa/8-a;al9=b48T5bal8ebCbFa`bla0bxa3bp1a9+bN8,b15:a,bda:a=bg8xbSa#bU04bfba4f7DbjbKb0ar9Sboax9!7Q70727476b,489$bJ4C0k4:4+4Rcl0k4U1I0,4Wcq2)2!a;1^2Z4U1O4=7V2S0X0n0w0$0T8!0D0!1a1A1C1E1G0sbB4-1V3l2?3y0$0M0X1r2M5J2O2faS0r1a1OcXcZc#2N0h170,24040R222p2VcUcA0d0b0a6}9uaR040x0L5F9o9za;0.1n1fc|0s0U0?2M0V0r5C5Q0(1w1idldn6*5F0L6A5.0,0~c|2S6P6*0*2Wd40A2Z1W4%2@41cYc!0Ic$5K0V0=1v0Hc^c-3!dOc:c%c=2Mc^0G0=1BdW5;dKcW3!1~1,1.1:cB3y2y2p2r1a2E0e1rdd6O0p0f291r4.4*cB354-ckd_3!0A5^020A6^ej6Cel4 b@0X8V0K0*a!3DbL1a7_ce4feq7z0*8Hev6~bqelaGeB04es4AbC8N0A7)0N0r1F6nefeheleiek6I8Feretb)04eya 7QeKeseE9041eQeC0!0Ke_e`e{e|4IeOcj4#dJ4Sco4(1cf40?3l1P0J2f9G6QdTdl5O6!1^9G0(3$0M1r0I5U0~0^0~7n0~dd6$9r0;0H2J0.fq6#170:2S0.0O0s1h5,9g5Q6L6Ndn5C9Lac0s0$0?2T9C5L5N5P0 5S5U5Cfo6(cQ0wdw229yfI0s1E0m0s6Tfx0i6%2bdq5T0~9B0M00dafH0s2}0X0WfHdFc~1R040p9vdm26fW0{0L1^dmfWfYfsfE0mdlf=0|fV740{9zcGgm9k4!f dsfjf%2R0UfrcQb.1GfJgp0Ydhdj0^1gdggrfufR4!fmfofDc|0mfG1G6:0SgMfTb20~0Udydn0~g8gacQfBc$0wf=9h2H1@0:2Bgx5M2M6,0u0sf|dCg0defV2{2LgcdKf73lco0_gl0.04.
# Tests
(insensible à la casse)(Ctrl+I)
(Ctrl+Clic pour inverser les colonnes)