moyen
Le plus proche
Nous souhaitons programmer une fonction qui, étant donnée une liste de points du plan, donne celui qui est le plus proche d'un point de départ.
Chaque point est donné sous la forme d'un tuple de deux entiers.
La liste des points à traiter est donc un tableau de tuples.
La distance utilisée est la distance euclidienne. La distance euclidienne entre deux points du plan de coordonnées \((x_A;\,y_A)\) et \((x_B;\,y_B)\)
est donnée par la formule :
\[d_{AB}=\sqrt{\left(x_B-x_A\right)^2+\left(y_B-y_A\right)^2}\]
Décompactage
Si la variable point référence notre couple de coordonnées, alors le décompactage ("unpacking" en anglais) permet de donner un nom simple aux composantes point[0] et point[1] :
🐍 Script Python x , y = point
Compléter les fonctions distance et plus_proche.
La fonction distance prend en paramètres deux tuples représentant deux points et renvoie leur distance.
La fonction plus_proche prend en paramètres une liste non vide de tuples représentant des points ainsi qu'un point de départ et renvoie le tuple correspondant au point le plus proche de celui de départ.
Exemples
>>> distance (( 0 , 3 ), ( 4 , 0 ))
5.0
>>> plus_proche ([( 7 , 9 ), ( 2 , 5 ), ( 5 , 2 )], ( 0 , 0 ))
(2, 5)
>>> plus_proche ([( 7 , 9 ), ( 2 , 5 ), ( 5 , 2 )], ( 7 , 9 ))
(7, 9)
Version vide Version à trous
.128013s3_8ufvy n7aS1me(P24:twi]D[h*)6o;bcdUg/0làqABp.r-,=+Nk95Rxé050K0q0w0m0y0P0b0j0J0P0m0b0b0Z010w0y0U010406050b0f0p0p0m0W0i040n0G0P0f0 0G0k0j020m0p0U0H0j0)0q190W0R0f0q0b050N16181a1c140U041A1H051K0N1K1M1H140K0y0h0@0_0{0}0C0y0M0C0P1!0C0w12050/0I0P0q1V0`0|011Z1#1%1#0w1-1/1+0w0I0G0K1c1,0W1I0w0C0@1f0b0U0m0k0}0t011;1X010g0;0q0k1n0q1+2c2e2j1?2m1/2p0p2r040a0j0s0W0G0U0G0b0y1i1k0-2a0W0W0q0J2M1A2t0k1I0N282Y0w2625270K2v0}1%0k2o2J1+1S1U0^1=2,0y2.0k221T1+0U2R1I2W2Y33152d1k2@2k2|0W190P120j0o2V3713362u391?3b3d3f0t3i2e3k2W2+013p0m3e040j0c3t2X143w3n0}3z3B0j0u3F3v373x3L3f0(3P3H3R3J3y0G3c3A3f0F3W3l381W3o3#3q3C0l3*3I3-3K3/3%3C0e3?3Y3^3!3$3M0%3~3m403T040o0O453,2^413:0o3h1B3j3X464e480o3s4j3u4l4d3a3`3B0o3E4r3G3+3S4w120o3O4A3Q4m4v424F3V4I4t4D4M493)4P4C3Z4o3=4V3@4n4E493}4!3 4$4S0o444I1J311A2=2#0K2)3x0J222B0,1T1I300q323j3P054|0-544K1?0$0k120g2G0p564#2k0x3f5j4+3a5e0419285o5b0}5m3C5v4u5c5r0y1o3#0w3P0j4W47120b0R0W5H4P064Q3Z0$120-0g5A3x5y5J4:5k3o0g5W0y0b0/0k0J0q5Z3Z11040r5=5L042I2`0w0d0S5`4e5@0Y5I5K4n125}0k5 0T622k5@0E0v3W0j6k5J5(3K120*606e1?64666n3y120i6r4I6m5p1?0G120Z6v6D6o5|0G5~6A33066l6C5w6x046q6d5%6J016u6B673a6y0d6X336S5B0}6F046H6$6w5r6a6c6j6l6%5c122R0w0f0W0k6I6T5r5N5P6s0}5@0r5_6Y766p6*756.016:0X7j3S7h617f7k6g7o3Z6:0D0D7v400p0y124q6,6}6/120!7A63127e356@6)6+3j6-3x7m7L6(046z7r7P6Z7u6?6Z7x7z7)6T7C7E7a6!120E3W5S7H015V045X7;5#7;0k5*5|1g0b0d300G0J0C5;7s3x7c81696M6b1z8d5?12657-7k5r0-2d798l406g6i4P6R7`6^8i5 888a8c7G6w6:6=8I6Z8C5~8k7$6T5@0B7;7/044b8v7M040z6{6k8B5+5-0d7C0k5E3A8H7T7`8K7X3o8*5.5:7;8f8Z7Y6_872G8G8}8n8^6K8s1a5Q8R7t7?8%7U5U5f3#976U0y9k0G5y2`9k0k0I6 2e0M8;3u7`8~9c3x8W4i9B8m048o8M769t042y955^8g6L8P9O0E6h9f8A7Q9R6b9n6G9r8h9S8 6t128U9*6K9m9.7=8#9W6|9Y1S8+4|722e0w9x2X9g408@8p7p7}5,8{a05a9d9P9;8O9!9;6#9J8q5W0q8t9b556w7(6P6R9X6Z7|0y5Ya54X8`0d9|0W9~aaa24e6:020P0w0H9%a78+8-8/1/9O8yasataX8)9Z8E938b9#6;aO6_9@aY9_a88,2`aSaG8?9$az5{9`5 aDaF9f7`7|707274a_68a!9289a%4V0N58534;be0N4@1A0w4_bj2%2Z21232#0m1.bg4@1Gab3x2R0p0d0g0m0$0q0d0C0c121s1u1w1y0jaV551N3k1H0L2.0j0m1h2R0j2I0{0y0I0;2L0+0j2o0ja;0 3A5,9~0j0_0ja{2e5:0jaR3d1:0QaH2k1a2L0C5t0q0*12090r0!092`0g0w0i097@6B0.b,1kbCb=6b0j0fbV210f0^1:160Wb@bN0+0P0+2A8jb_0f0j1}0qbXb,0w0j2|1kczcB0?2`1S5:0b0V1JbS040A00bX2$1:an0Y2a181:b|1w0ycQ0G0fcV6b0+2R0{1:0y0Jc@1ycP2O4|1o1a0qcA1/0?b`5/1yc.2|c`b!c_0h1j0?di0?4|6b2o9 cAd63A0J0f1/dbc;1a0Wb+2Ob^deb|0qcw1%1S2o2.0V0j0#c_0?0+0h2LdadnbW2`2Kb@0mb}2e10dz0m2Mb_bN2|0p0Ic~0j0g0P0G1|9~cZc#1R1T3x1^1$1(1*bx3Z2x2o2q122D0n0J0W10cP0s0i281j5652ab3455bde7407|7~9;80ae83dIbF0JdD0qaa9z7N9Q917#ap7%96b5908D7iah7?bP4sau7g6V6OeM8SeOaja67!a(8L8=9YeKa 9Y6W9O9Ie-8N7Re+a*eR7SeW9^av6 0.b39k9Ae#akeZe~a1a@047neP8_eZeL9yaq9eff7I047y9k8W7Fe^6T6:7Kfm9=7Of7e)eSe(7w12fefD5{e*eT04ckfHaI12fpfxfr7^b0alay9F40eyfX4n830U85b894fKfzfje_a!8QfA9Ge@3uc2fg998uf!6feUe:f.918FbafN2ka4g45c0J12dS2.f eYa{a:8.b e{fx9s5fd`d-9Of,2X7`0b0o1200cf009Tgd7k7|0g9jgk9(agg76/9pb4gI6U6_f:f-e$04eV3GaX8(a.9{c_aEdsgjgM8ra8b{eCeEeGfkadf|fga+fKf?fb9_am9agz8zgVfU04axaOgfa}g#fxaJaLaNgFaP5 b~8:aUa,ataZg1a$a?8Ja^g%gGaoe gVf0gea/hdaTh6hnftf8h3gZa~g}gWf104b273e|6Ng2aa14bc4}2Yeo4?50hP0-0/0;0b04.
.128013s3_8ufvy n7aS1me(P24:twi]D[h*)6o;bcdUg/0làqABp.r-,=+Nk95Rxé050K0q0w0m0y0P0b0j0J0P0m0b0b0Z010w0y0U010406050b0f0p0p0m0W0i040n0G0P0f0 0G0k0j020m0p0U0H0j0)0q190W0R0f0q0b050N16181a1c140U041A1H051K0N1K1M1H140K0y0h0@0_0{0}0C0y0M0C0P1!0C0w12050/0I0P0q1V0`0|011Z1#1%1#0w1-1/1+0w0I0G0K1c1,0W1I0w0C0@1f0b0U0m0k0}0t011;1X010g0;0q0k1n0q1+2c2e2j1?2m1/2p0p2r040a0j0s0W0G0U0G0b0y1i1k0-2a0W0W0q0J2M1A2t0k1I0N282Y0w2625270K2v0}1%0k2o2J1+1S1U0^1=2,0y2.0k221T1+0U2R1I2W2Y33152d1k2@2k2|0W190P120j0o2V3713362u391?3b3d3f0t3i2e3k2W2+013p0m3e040j0c3t2X143w3n0}3z3B0j0u3F3v373x3L3f0(3P3H3R3J3y0G3c3A3f0F3W3l381W3o3#3q3C0l3*3I3-3K3/3%3C0e3?3Y3^3!3$3M0%3~3m403T040o0O453,2^413:0o3h1B3j3X464e480o3s4j3u4l4d3a3`3B0o3E4r3G3+3S4w120o3O4A3Q4m4v424F3V4I4t4D4M493)4P4C3Z4o3=4V3@4n4E493}4!3 4$4S0o444I1J311A2=2#0K2)3x0J222B0,1T1I300q323j3P054|0-544K1?0$0k120g2G0p564#2k0x3f5j4+3a5e0419285o5b0}5m3C5v4u5c5r0y1o3#0w3P0j4W47120b0R0W5H4P064Q3Z0$120-0g5A3x5y5J4:5k3o0g5W0y0b0/0k0J0q5Z3Z11040r5=5L042I2`0w0d0S5`4e5@0Y5I5K4n125}0k5 0T622k5@0E0v3W0j6k5J5(3K120*606e1?64666n3y120i6r4I6m5p1?0G120Z6v6D6o5|0G5~6A33066l6C5w6x046q6d5%6J016u6B673a6y0d6X336S5B0}6F046H6$6w5r6a6c6j6l6%5c122R0w0f0W0k6I6T5r5N5P6s0}5@0r5_6Y766p6*756.016:0X7j3S7h617f7k6g7o3Z6:0D0D7v400p0y124q6,6}6/120!7A63127e356@6)6+3j6-3x7m7L6(046z7r7P6Z7u6?6Z7x7z7)6T7C7E7a6!120E3W5S7H015V045X7;5#7;0k5*5|1g0b0d300G0J0C5;7s3x7c81696M6b1z8d5?12657-7k5r0-2d798l406g6i4P6R7`6^8i5 888a8c7G6w6:6=8I6Z8C5~8k7$6T5@0B7;7/044b8v7M040z6{6k8B5+5-0d7C0k5E3A8H7T7`8K7X3o8*5.5:7;8f8Z7Y6_872G8G8}8n8^6K8s1a5Q8R7t7?8%7U5U5f3#976U0y9k0G5y2`9k0k0I6 2e0M8;3u7`8~9c3x8W4i9B8m048o8M769t042y955^8g6L8P9O0E6h9f8A7Q9R6b9n6G9r8h9S8 6t128U9*6K9m9.7=8#9W6|9Y1S8+4|722e0w9x2X9g408@8p7p7}5,8{a05a9d9P9;8O9!9;6#9J8q5W0q8t9b556w7(6P6R9X6Z7|0y5Ya54X8`0d9|0W9~aaa24e6:020P0w0H9%a78+8-8/1/9O8yasataX8)9Z8E938b9#6;aO6_9@aY9_a88,2`aSaG8?9$az5{9`5 aDaF9f7`7|707274a_68a!9289a%4V0N58534;be0N4@1A0w4_bj2%2Z21232#0m1.bg4@1Gab3x2R0p0d0g0m0$0q0d0C0c121s1u1w1y0jaV551N3k1H0L2.0j0m1h2R0j2I0{0y0I0;2L0+0j2o0ja;0 3A5,9~0j0_0ja{2e5:0jaR3d1:0QaH2k1a2L0C5t0q0*12090r0!092`0g0w0i097@6B0.b,1kbCb=6b0j0fbV210f0^1:160Wb@bN0+0P0+2A8jb_0f0j1}0qbXb,0w0j2|1kczcB0?2`1S5:0b0V1JbS040A00bX2$1:an0Y2a181:b|1w0ycQ0G0fcV6b0+2R0{1:0y0Jc@1ycP2O4|1o1a0qcA1/0?b`5/1yc.2|c`b!c_0h1j0?di0?4|6b2o9 cAd63A0J0f1/dbc;1a0Wb+2Ob^deb|0qcw1%1S2o2.0V0j0#c_0?0+0h2LdadnbW2`2Kb@0mb}2e10dz0m2Mb_bN2|0p0Ic~0j0g0P0G1|9~cZc#1R1T3x1^1$1(1*bx3Z2x2o2q122D0n0J0W10cP0s0i281j5652ab3455bde7407|7~9;80ae83dIbF0JdD0qaa9z7N9Q917#ap7%96b5908D7iah7?bP4sau7g6V6OeM8SeOaja67!a(8L8=9YeKa 9Y6W9O9Ie-8N7Re+a*eR7SeW9^av6 0.b39k9Ae#akeZe~a1a@047neP8_eZeL9yaq9eff7I047y9k8W7Fe^6T6:7Kfm9=7Of7e)eSe(7w12fefD5{e*eT04ckfHaI12fpfxfr7^b0alay9F40eyfX4n830U85b894fKfzfje_a!8QfA9Ge@3uc2fg998uf!6feUe:f.918FbafN2ka4g45c0J12dS2.f eYa{a:8.b e{fx9s5fd`d-9Of,2X7`0b0o1200cf009Tgd7k7|0g9jgk9(agg76/9pb4gI6U6_f:f-e$04eV3GaX8(a.9{c_aEdsgjgM8ra8b{eCeEeGfkadf|fga+fKf?fb9_am9agz8zgVfU04axaOgfa}g#fxaJaLaNgFaP5 b~8:aUa,ataZg1a$a?8Ja^g%gGaoe gVf0gea/hdaTh6hnftf8h3gZa~g}gWf104b273e|6Ng2aa14bc4}2Yeo4?50hP0-0/0;0b04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)