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
.128013à[3B4.nx/R8p)0hD*v7c256Ag9Nf=buS-,_l(waPké;:ors1qmyd]i Ute+050!0*0)0N0$0K0V0%0u0K0N0V0V0D010)0$0m010406050V0F0Y0Y0N0U0Z040G0T0K0F0 0T0h0%020N0Y0m0R0%0k0*190U0X0F0*0V050j16181a1c140m041A1H051K0j1K1M1H140!0$0s0@0_0{0}0p0$0z0p0K1!0p0)12050/0E0K0*1V0`0|011Z1#1%1#0)1-1/1+0)0E0T0!1c1,0U1I0)0p0@1f0V0m0N0h0}0v011;1X010C0;0*0h1n0*1+2c2e2j1?2m1/2p0Y2r040a0%0O0U0T0m0T0V0$1i1k0-2a0U0U0*0u2M1A2t0h1I0j282Y0)2625270!2v0}1%0h2o2J1+1S1U0^1=2,0$2.0h221T1+0m2R1I2W2Y33152d1k2@2k2|0U190K120%0W2V3713362u391?3b3d3f0v3i2e3k2W2+013p0N3e040%0d3t2X143w3n0}3z3B0%0f3F3v373x3L3f0w3P3H3R3J3y0T3c3A3f0x3W3l381W3o3#3q3C0t3*3I3-3K3/3%3C0l3?3Y3^3!3$3M0A3~3m403T040W0o453,2^413:0W3h1B3j3X464e480W3s4j3u4l4d3a3`3B0W3E4r3G3+3S4w120W3O4A3Q4m4v424F3V4I4t4D4M493)4P4C3Z4o3=4V3@4n4E493}4!3 4$4S0W444I1J311A2=2#0!2)3x0u222B0,1T1I300*323j3P054|0-544K1?0P0h120C2G0Y564#2k0M3f5j4+3a5e0419285o5b0}5m3C5v4u5c5r0$1o3#0)3P0%4W47120V0X0U5H4P064Q3Z0P120-0C5A3x5y5J4:5k3o0C5W0$0V0/0h0u0*5Z3Z11040L5=5L042I2`0)0J0y5`4e5@0I5I5K4n125}0h5 0e622k5@0n0S3W0%6k5J5(3K120i606e1?64666n3y120Z6r4I6m5p1?0T120D6v6D6o5|0T5~6A33066l6C5w6x046q6d5%6J016u6B673a6y0J6X336S5B0}6F046H6$6w5r6a6c6j6l6%5c122R0)0F0U0h6I6T5r5N5P6s0}5@0L5_6Y766p6*756.016:0H7j3S7h617f7k6g7o3Z6:0r0r7v400Y0$124q6,6}6/120+7A63127e356@6)6+3j6-3x7m7L6(046z7r7P6Z7u6?6Z7x7z7)6T7C7E7a6!120n3W5S7H015V045X7;5#7;0h5*5|1g0V0J300T0u0p5;7s3x7c81696M6b1z8d5?12657-7k5r0-2d798l406g6i4P6R7`6^8i5 888a8c7G6w6:6=8I6Z8C5~8k7$6T5@0c7;7/044b8v7M040#6{6k8B5+5-0J7C0h5E3A8H7T7`8K7X3o8*5.5:7;8f8Z7Y6_872G8G8}8n8^6K8s1a5Q8R7t7?8%7U5U5f3#976U0$9k0T5y2`9k0h0E6 2e0z8;3u7`8~9c3x8W4i9B8m048o8M769t042y955^8g6L8P9O0n6h9f8A7Q9R6b9n6G9r8h9S8 6t128U9*6K9m9.7=8#9W6|9Y1S8+4|722e0)9x2X9g408@8p7p7}5,8{a05a9d9P9;8O9!9;6#9J8q5W0*8t9b556w7(6P6R9X6Z7|0$5Ya54X8`0J9|0U9~aaa24e6:020K0)0R9%a78+8-8/1/9O8yasataX8)9Z8E938b9#6;aO6_9@aY9_a88,2`aSaG8?9$az5{9`5 aDaF9f7`7|707274a_68a!9289a%4V0j58534;be0j4@1A0)4_bj2%2Z21232#0N1.bg4@1Gab3x2R0Y0J0C0N0P0*0J0p0d121s1u1w1y0%aV551N3k1H0(2.0%0N1h2R0%2I0{0$0E0;2L0Q0%2o0%a;0 3A5,9~0%0_0%a{2e5:0%aR3d1:0baH2k1a2L0p5t0*0i12090L0+092`0C0)0Z097@6B0.b,1kbCb=6b0%0FbV210F0^1:160Ub@bN0Q0K0Q2A8jb_0F0%1}0*bXb,0)0%2|1kczcB0?2`1S5:0V0g1JbS040q00bX2$1:an0I2a181:b|1w0$cQ0T0FcV6b0Q2R0{1:0$0uc@1ycP2O4|1o1a0*cA1/0?b`5/1yc.2|c`b!c_0s1j0?di0?4|6b2o9 cAd63A0u0F1/dbc;1a0Ub+2Ob^deb|0*cw1%1S2o2.0g0%0Bc_0?0Q0s2LdadnbW2`2Kb@0Nb}2e10dz0N2Mb_bN2|0Y0Ec~0%0C0K0T1|9~cZc#1R1T3x1^1$1(1*bx3Z2x2o2q122D0G0u0U10cP0O0Z281j5652ab3455bde7407|7~9;80ae83dIbF0udD0*aa9z7N9Q917#ap7%96b5908D7iah7?bP4sau7g6V6OeM8SeOaja67!a(8L8=9YeKa 9Y6W9O9Ie-8N7Re+a*eR7SeW9^av6 0.b39k9Ae#akeZe~a1a@047neP8_eZeL9yaq9eff7I047y9k8W7Fe^6T6:7Kfm9=7Of7e)eSe(7w12fefD5{e*eT04ckfHaI12fpfxfr7^b0alay9F40eyfX4n830m85b894fKfzfje_a!8QfA9Ge@3uc2fg998uf!6feUe:f.918FbafN2ka4g45c0u12dS2.f eYa{a:8.b e{fx9s5fd`d-9Of,2X7`0V0W1200cf009Tgd7k7|0C9jgk9(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;0V04.
.128013à[3B4.nx/R8p)0hD*v7c256Ag9Nf=buS-,_l(waPké;:ors1qmyd]i Ute+050!0*0)0N0$0K0V0%0u0K0N0V0V0D010)0$0m010406050V0F0Y0Y0N0U0Z040G0T0K0F0 0T0h0%020N0Y0m0R0%0k0*190U0X0F0*0V050j16181a1c140m041A1H051K0j1K1M1H140!0$0s0@0_0{0}0p0$0z0p0K1!0p0)12050/0E0K0*1V0`0|011Z1#1%1#0)1-1/1+0)0E0T0!1c1,0U1I0)0p0@1f0V0m0N0h0}0v011;1X010C0;0*0h1n0*1+2c2e2j1?2m1/2p0Y2r040a0%0O0U0T0m0T0V0$1i1k0-2a0U0U0*0u2M1A2t0h1I0j282Y0)2625270!2v0}1%0h2o2J1+1S1U0^1=2,0$2.0h221T1+0m2R1I2W2Y33152d1k2@2k2|0U190K120%0W2V3713362u391?3b3d3f0v3i2e3k2W2+013p0N3e040%0d3t2X143w3n0}3z3B0%0f3F3v373x3L3f0w3P3H3R3J3y0T3c3A3f0x3W3l381W3o3#3q3C0t3*3I3-3K3/3%3C0l3?3Y3^3!3$3M0A3~3m403T040W0o453,2^413:0W3h1B3j3X464e480W3s4j3u4l4d3a3`3B0W3E4r3G3+3S4w120W3O4A3Q4m4v424F3V4I4t4D4M493)4P4C3Z4o3=4V3@4n4E493}4!3 4$4S0W444I1J311A2=2#0!2)3x0u222B0,1T1I300*323j3P054|0-544K1?0P0h120C2G0Y564#2k0M3f5j4+3a5e0419285o5b0}5m3C5v4u5c5r0$1o3#0)3P0%4W47120V0X0U5H4P064Q3Z0P120-0C5A3x5y5J4:5k3o0C5W0$0V0/0h0u0*5Z3Z11040L5=5L042I2`0)0J0y5`4e5@0I5I5K4n125}0h5 0e622k5@0n0S3W0%6k5J5(3K120i606e1?64666n3y120Z6r4I6m5p1?0T120D6v6D6o5|0T5~6A33066l6C5w6x046q6d5%6J016u6B673a6y0J6X336S5B0}6F046H6$6w5r6a6c6j6l6%5c122R0)0F0U0h6I6T5r5N5P6s0}5@0L5_6Y766p6*756.016:0H7j3S7h617f7k6g7o3Z6:0r0r7v400Y0$124q6,6}6/120+7A63127e356@6)6+3j6-3x7m7L6(046z7r7P6Z7u6?6Z7x7z7)6T7C7E7a6!120n3W5S7H015V045X7;5#7;0h5*5|1g0V0J300T0u0p5;7s3x7c81696M6b1z8d5?12657-7k5r0-2d798l406g6i4P6R7`6^8i5 888a8c7G6w6:6=8I6Z8C5~8k7$6T5@0c7;7/044b8v7M040#6{6k8B5+5-0J7C0h5E3A8H7T7`8K7X3o8*5.5:7;8f8Z7Y6_872G8G8}8n8^6K8s1a5Q8R7t7?8%7U5U5f3#976U0$9k0T5y2`9k0h0E6 2e0z8;3u7`8~9c3x8W4i9B8m048o8M769t042y955^8g6L8P9O0n6h9f8A7Q9R6b9n6G9r8h9S8 6t128U9*6K9m9.7=8#9W6|9Y1S8+4|722e0)9x2X9g408@8p7p7}5,8{a05a9d9P9;8O9!9;6#9J8q5W0*8t9b556w7(6P6R9X6Z7|0$5Ya54X8`0J9|0U9~aaa24e6:020K0)0R9%a78+8-8/1/9O8yasataX8)9Z8E938b9#6;aO6_9@aY9_a88,2`aSaG8?9$az5{9`5 aDaF9f7`7|707274a_68a!9289a%4V0j58534;be0j4@1A0)4_bj2%2Z21232#0N1.bg4@1Gab3x2R0Y0J0C0N0P0*0J0p0d121s1u1w1y0%aV551N3k1H0(2.0%0N1h2R0%2I0{0$0E0;2L0Q0%2o0%a;0 3A5,9~0%0_0%a{2e5:0%aR3d1:0baH2k1a2L0p5t0*0i12090L0+092`0C0)0Z097@6B0.b,1kbCb=6b0%0FbV210F0^1:160Ub@bN0Q0K0Q2A8jb_0F0%1}0*bXb,0)0%2|1kczcB0?2`1S5:0V0g1JbS040q00bX2$1:an0I2a181:b|1w0$cQ0T0FcV6b0Q2R0{1:0$0uc@1ycP2O4|1o1a0*cA1/0?b`5/1yc.2|c`b!c_0s1j0?di0?4|6b2o9 cAd63A0u0F1/dbc;1a0Ub+2Ob^deb|0*cw1%1S2o2.0g0%0Bc_0?0Q0s2LdadnbW2`2Kb@0Nb}2e10dz0N2Mb_bN2|0Y0Ec~0%0C0K0T1|9~cZc#1R1T3x1^1$1(1*bx3Z2x2o2q122D0G0u0U10cP0O0Z281j5652ab3455bde7407|7~9;80ae83dIbF0udD0*aa9z7N9Q917#ap7%96b5908D7iah7?bP4sau7g6V6OeM8SeOaja67!a(8L8=9YeKa 9Y6W9O9Ie-8N7Re+a*eR7SeW9^av6 0.b39k9Ae#akeZe~a1a@047neP8_eZeL9yaq9eff7I047y9k8W7Fe^6T6:7Kfm9=7Of7e)eSe(7w12fefD5{e*eT04ckfHaI12fpfxfr7^b0alay9F40eyfX4n830m85b894fKfzfje_a!8QfA9Ge@3uc2fg998uf!6feUe:f.918FbafN2ka4g45c0u12dS2.f eYa{a:8.b e{fx9s5fd`d-9Of,2X7`0V0W1200cf009Tgd7k7|0C9jgk9(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;0V04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)