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] :
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)
|
.128013ita;,nD2R*7+14 f08Uelor=[à ]/m3dv.S5éwbcyq:A-upB)_9NhxPs6(gk050F0u0c0d0b0v0%0p0N0v0d0%0%0y010c0b0U010406050%0T0D0D0d0x0O040I0w0v0T0 0w0g0p020d0D0U0e0p0j0u190x0P0T0u0%050C16181a1c140U04051H1A1K0C1H140F0b0G0@0_0{0}0_0g0*0T0d0*0u0S0U0O0c0!1j0p0!0b0*0!0v1:0!0c12050/0M0v0u1T0`0|011/1;1?1;0c1|1~1`0c0x1I1+0@1f0%0U0d0g0}0i01201V010q0;0u0g1n0u1`2i2k2p222s1~2v0D2x040a0p0$0x0w0U0w0%0b1i1k0-2g0x0x0u0N2S1A2z0g1I0C1+2(2c2e2d1{0F2B1W0b0g2u2P1`1Q1S0^212=2@0g0w2{1`0U2X1I2$2(38152j1k2}2q310x190v1`0d1.2X0q0}030X0X0N320u1?300w0S0i0S0n120p0n1A0d393c133b2A3e223g3i3k3m0u3o013q3s3u3w2^3z3z3D0i3G3I2k3K2$2;013P0d3j1I3l0!3n3p3r3t0-3Z313#0E3D0E3)2#3J143-3N0}3:3=053@3_3V3{3Y2?3!3A0o3D0o441B463L3d1U3O0w3h3;3R3^3T3`3X3}4j3 3A0J3D0J4p38473c3.4b4z4f3W3|3v4F3y3A0(3D0(4L4r484u4a4w3Q3?3S3U4T4i3x3#0l3D0l4$3+4N3M4)3/4+4y4-4A4/4h4E4=3A0s3D0s4`2%4|4t2~4 4x4c4e4B4g4D4V570S0Y3D0Y5c3,4O495h4,4d4.4C4U3~4X3B0r120n0r5u5e4P505j5B5m5D4W3#0n3C045V5L4s5N5i4R5l4:564k3B2n5X3(0C3H454{5!5x4Q524S555o5+0n415X435:3*5d5@4~5_5A535C4;5~4m5X4o635=654(5g685k545n5E5U4I5X4K6h4q5?6k3f5O5%6o5S5p0n4Z5X4#6v4M666l6A5`5(5|6q3A0n4@5X4_6J4%5w676N695{6p5T6S595X5b6X6x6Z6M5$6O6C6c4G3B5r5X5t6.2%1L361A2{2+0F2e2:5x4U2`1R1I350u373J6i1I4U7f2A0b0F0}3r2$5U3R7m7o6(6E2o2F0u7u6D5~1`6h6y220+0g120q2M0D7h6L2q0L3D7N7F4a7I04191+7S6:7P7R6w6 7T017H120b1o4w0c7h0p7O3O120%0P0x7:7%3K7}5!7t017p3c3#5-5A816Q6)3$0p7y7A6^5F8663147 3-880X7q3A60877n827v5+418c2w8e5*6_8q8i7Z7l8s832k3#6e8r8z5}6_4m8x2G8M6R0S8K7E7!7G120-0q8E5f7#047=8k8X4a0q8Z0b0%0/0g0N0u8$3.11040)8_5^122O2?0c0X0R8~4~8{0f7;7?4a900w920X0V965g8{0W0Q7h8j3a8l8G8n844H7s9r7B6_4I8Q7z8t9x5F6s3)0p9H7=7)7V0#949i2q989a9K120O9N7}9J8,010w120y9R9Y7V910g93957}9o7g9q7u8o0S6G8L9C8f3#4Z9A8S8a9^639I9X4}6l129M9h8+a59P12999W9b3/9T9g9%ab229!049$af9S049*93a96Kaa1k8m9?6U9_895p4@9~9`8A5FaBa29Iag0+122X0c0T0x0gak8%7@047_7{9O228{0)8}ax4Pa7ajaq9Yan0SaVa+049M9-9p9Y9ka=5xan0k0ka}4~0D0b125/38a4aW0}an0mb29j12a)a`al9c049Uav3Jb93.a:be3faia_9:a{120Wbsam12b0bA0}b4b6a#0}a|9.8_az9t0S6+aC8u6_59aGaD5+bQ8Da*bN8I3A6{bR9D3#5rbVbS5Fb(bZbiay9r9?5J9v9 6E5Hb-b*6S5H2(5;7)aO048!bI017Q8)c80g8.as1g0%0X350w0N0!8^a*5xa%cc9d921zco97adbEahc60u2ja!cvbf049l9nbMb@bO5Vb`aH8N5FcMb~9{6S5W9GaMaratci2Mclcnb8aganapc(cY9e9+cub=8`120zc8bG045KcEac040BcIb!cKb$5,cNbW6_0n2ncSaI5U8h3Ha3ag7V1Q8;0Xb40g7-3;c%boc)9#cydh8:8=8@c8cqc|aXcZcjc$dycxa.bjcz0-cC7|c;cpbyd0c;b#0g5U8q3l8mb 3B8w8dcO8T5 7DdecX9Yc50q4wdt7,cy0wca2?dt0MaP2k1$dF8|c^b55Xd~aec,9(d`042Ed~bhbwdI9)c.0cc:ecba019kcHbLd19=cL8KdW9wcT3B8Pd#d6cQ8Vd*a39Hdgcs9+d=dsdHejeectd~c@dAbk0bd~c endRd2dT6S9Fesb{5~9zexb.6rd)8)eCeDardi933taS2k0cdp3+bpa~eIe5ed8/8;2kdxePekbgcrasefe3d:cAdLd~bzeUei0pdS5U9^e!d$8a6F7x8yfn6Ea1eBeCaN7,8#eJa?e:3Xe?9+e_2%e{4~an020v0c0efbfCdldn1~d~9mfg3+80eW5UaBfmeyf!fq8Rfs5~aKfve-e.9(eF93dDcmeHaofbatdQfhfj6*d5e)g0dacP5UbYf.f/eEc6dvdk2?fSfGcb7)c*fPgce=0xe@gg9/fX9;8tb^b(f$g26`f)9Bf%6Sb:fvfx04aQaSaUfA8 f89ff@gp7N0C7j707e727b1A0c75gX2.2)0d1}gU0C731G7kej2X0D0X0q0d0+0u0X0!601s1u1w1y0pfV3a1N3K1H0t2@0p0d1h2X0p2O0{0b0M0;2R0K0p2ufidm0 3;8:e@0p0_0pe:f21 fR3i1 0AfI5g1a2R0!7X0u0#12090)0m092?0q0c0O09ffb80.hk1kg=hq9+0p0Th70M0w0T0^1 160xhsg 0K0v0K2Gc/hu0T0p290uh9hk0c8c1-h.h:0?2?1Q8@0%0H1Lh4040h00h92c1 dL0f2g181 8@0p1w0bi20Ti69+0K2X0{1 0b0Nis1yi12U3t1o1a0uh/1~0?hv8?1yil31iuhch*0G1j0?iS0?3tfFfFh/iG3;0N0T1~iLio1a0xhj2UhtiOip0uh+1?1Q2u2@0H0p0Zh*0?0K0G2RiKiXh82?2Qhs3l19dm0Ui,0d2Shug 310D0Miy0p0q0v0w28e@iaic1P1R3.1X1Z1#1%1)1+1-241=1@1_2eg%1~3.jJ261^h}2b2.2f3t0=3c2m2o5x2D2u2w2y9Yj(7y120$1*1,gJh22*g!2-76jB4W0%7a2|4~5E337c71h2dN6!6=6$6Pe)0E3B3D3F6~5ved6#6n6bdbkd5-0p5/5;bL9Kkk5Q5)g5kd600p62ks6Kkuk9kl5R9{kd6e0p6gkD6YkjkGkwf%kd6s0p6ukO6/kQ5zkHkx6qkd6G0p6IkY6j9(kv6akIkn0S6U0p6Wk-kieKk:6%b*kd6+0p6-k{5M5^k~kbl05q5s5ZkFk#kSkc5G5Ic{l5dgl86@k?cM5Xkgllle51kalokyd45.ldk/kRk;k%5Tkdd(61lBk!lvk$kTev5IkN642(7d2(73gXgZgY3.791IlWlU4slS05gSgs8HdTlHg1la3Cg4k(kec2g-3.c5c7f4ca8*k76lcei^g^0Ni:0uggagdzm2btgM9+9Vmda$dGe~eKf=a-mibJbyh14reogt84kol;kJ8be(ladde,f:e a@mhfhdO04e4dqar9Ubve`drf`gK67mnmQ65mul.0Skzmyk?d!frlO8CgEara8famUa6blmomNa/e}m^mGcZbn5?mZ9s8IkKm%lyewm*lheAmEhC2qc5gHaTcymcmJmVmHm~fHmSa;m;mea^fef_bDnp22c_b7m{ejbcngf6f47Vbmf_nomla?mPnsnvbbbCb1nN01nxf}gr4OfjkUn4l^e%n7la9Fb;f~fZk)nZlG9@gze#3 n,l`gFl~mpc97$n`cd90cgc!ckf^f4nhnVm|efeho6ej9QnRdhcB1adMnicFemaweVepn2k@n-4=kdaFmBmzf-nagadCc#o3nJe|mToC4~0+0N12j22@nU7(nWn+bPoq3!l1n:f+n=oQl`dfe/gchydof_c+nz4Pe7js0wjjeac80%5W02030E0Y0ehPo@o_fOo4dPfWoN8Fonl/lb4-dXmzb,ouk?gDoxc47Jd/odf=d=d@j?o*gLato9p3ob12msm ommvoob_p8etlpb}pclypAcWe-gafCgmgoo(gkf1iP3sm8ma7)o5psa?f|p0mLfPofcDn`bKoln*p5m#3BcVgwl=l?pFl^lqpIfwpg040bfzoFm=pLh*gnfFf_fLfNpP93o$fTp!pvmYpxm!lH86p;mzd8oUlOqmoYf/oZf;mff?oAggnbbBoEponjpZp+oafioPlIb)qlm)f*qom,naqrpKo#gehzpOpjgbdjpMq5p2l{nXlPpBn;3ylHn6qMlh0nn9qsdInd0.gIf{efo1dEq#1AgS1N71g*gW2)gZ2)g#h}lV7b8j0-0/0;0%04.
.128013ita;,nD2R*7+14 f08Uelor=[à ]/m3dv.S5éwbcyq:A-upB)_9NhxPs6(gk050F0u0c0d0b0v0%0p0N0v0d0%0%0y010c0b0U010406050%0T0D0D0d0x0O040I0w0v0T0 0w0g0p020d0D0U0e0p0j0u190x0P0T0u0%050C16181a1c140U04051H1A1K0C1H140F0b0G0@0_0{0}0_0g0*0T0d0*0u0S0U0O0c0!1j0p0!0b0*0!0v1:0!0c12050/0M0v0u1T0`0|011/1;1?1;0c1|1~1`0c0x1I1+0@1f0%0U0d0g0}0i01201V010q0;0u0g1n0u1`2i2k2p222s1~2v0D2x040a0p0$0x0w0U0w0%0b1i1k0-2g0x0x0u0N2S1A2z0g1I0C1+2(2c2e2d1{0F2B1W0b0g2u2P1`1Q1S0^212=2@0g0w2{1`0U2X1I2$2(38152j1k2}2q310x190v1`0d1.2X0q0}030X0X0N320u1?300w0S0o0S0n120p0n1A0d393c133b2A3e223g3i3k3m0u3o013q3s3u3w2^3z0S2n040p0i3G3I2k3K2$2;013P0d3j1I3l0!3n3p3r3t0-3Z313#0E3D0E3+2#3J143/3N0}3=3@053_3{3V3}3Y2?3!3A0o3D0o461B483L3d1U3O0w3h3?3R3`3T3|3X3 4l413A0J3D0J4r38493c3:4d4B4h3W3~3v4H3y3A0(3D0(4N4t4a4w4c4y3Q3^3S3U4V4k3x3#0l3D0l4(3-4P3M4+3;4-4A4/4C4;4j4G4@3A0s3D0s4|2%4~4v2~514z4e4g4D4i4F4X590S0Y3D0Y5e3.4Q4b5j4.4f4:4E4W404Z3B0r120n0r5w5g4R525l5D5o5F4Y3#0n3C045X5N4u5P5k4T5n4=584m3B3%0n3*0C3H474}5$5z4S544U575q5-0n435Z455=3,5f5_505{5C555E4?604o5Z4q655@674*5i6a5m565p5G5W4K5Z4M6j4s5^6m3f5Q5)6q5U5r0n4#5Z4%6x4O686n6C5|5*5~6s3A0n4_5Z4{6L4)5y696P6b5}6r5V6U5b5Z5d6Z6z6#6O5(6Q6E6e4I3B5t5Z5v6:2%1L361A2{2+0F2e2:5z4W2`1R1I350u373J6k1I4W7h2A0b0F0}3r2$5W3R7o7q6*6G2o2F0u7w6F601`6j6A220+0g120q2M0D7j6N2q0L3D7P7H4c7K04191+7U6=7R7T6y717V017J120b1o4y0c7j0p7Q3O120%0P0x7=7)3K7 5$7v017r3c3#3%5C836S6+3$7z2w7C6`5H886514813/8a0X7s3A62897p847x5-430p7A8g5,6{8s8k7#7n8u852k3#6g8t8B5 6{4o8z8f8v7D8Q7F5?7+0+120-0q8G5h7%3(8(4R0q8#0b0%0/0g0N0u8,5z11040)8_69122O2?0c0X0R8~5i8{0f7?7^4c900w920X0V962q8{0W0Q7j8l3a8n8I8p864J7u9r8V5H4K8S2G8O6T0S6u3+0p9H7@7+7X0#949i22989a9K120O9N7 9J7$220w120y9R9Y9c04910g93957 9o7i9q7w8q0S6I8N8U8h3#4#9A7B9{8C5H9_659I9X4 6n129M9h8m9(019Q9W9b3;9T9g9%a82q9!049$ah9S9*9e9,al9/8,8o9@6W9`8b5r4_9 9C8caCa59Iai8!042X0c0T0x0gam8)7_047{7}9O0}8{0)8}adanaXabaV3:ap0Sa.5`aa9V9pae9ka=50ap0k0ka|5i0D0b125;38a7aW0}ap0mb19j12a)a_a+9)9Uacb7aia:bdaX9U9.bhb9af120Wbpba12a by01b3b5a#bv04bxaya*1kaA9t0S6-aD8w6{5baHa18P5HbQ8FbL0pbN8K3A6}bR9x3#5tbVaE5-b*b!btb$9r9@5L9vaI6G5Jb/bS5Hb{2(8YaeaO8$bG7S8+b#5`8.9*1g0%0X350w0N0!8^cc50a%bG7X9+0c1zco971299asae7X0-2ja!cwbebI9mbKb@b%0g5W5Yb+9|6U3Cc0b,cS8X3(aMatctci2Mclcnbm7+aparc*cB9d92cvb@8`120zbGbE045McG9P120B9nazb_bO5:b|bW9Dd6cUcR5.cXa6aicC8:93b30g7/3?c)3Jb8a/9#bCdh8;2k8@bGcqc~9)c#cjc(dycydt8#0ucE7~c?cpbwd2b#cM5W8s3l8ocV3B8y8Ad88c61decZc67L4ydH040bbC0wca2?dt0M120x2k1$dF8|c`b45Zd|czc.bi3;d@042Ed|bg9;c/auc;d|0W9ldPcLd4b(3B8MdU9wdc0n8RdZb:6{erd%a69Hdgc:9,d/dscAe4csavcud|c_dAajd-d|d1cKeb8H9?d59Feob}609zetc16texeyeA041Q8;3XaS2k0cdo3-dq5zc,d,e,8=dxeMdzdMa9edeCe~dGeFbucCdJ1adLeSbua{eR3-82ekcN6U9_eXd!6G9~e#dW6He(df8Z7.8%f64R8/e-3te/9,e=2%e@a}12020v0c0ee`di0Xdkdm1~d|cJ6MdQfi5WaCfmeuc2aGfqeqaK3Heyf-fHf1dCc%cmeDaqd,cteifcb^eUel0nbQf#e$6,8e9Bfn60bZf,f.fuece{fQ2?fSfF8+c+eEe3f7fA93fCd_fEf{fg9=8vb`b*g2frb.f)a25Wb=gaezfvaP0.aSaUfya?f293dDf?ff710C7l727g747d1A0c77g#2.2)0d1}gY0C751G7mbu2X0D0X0q0d0+0u0X0!621s1u1w1y0pfV7i1N3K1H0t2@0p0d1h2X0p2O0{0b0M0;2R0K0p2ub$dl0 3?8:e:0p0_0pe{dw1 fR3i1 0Af/2q1a2R0!7Z0u0#12090)0m092?0q0c0O09bJb70.ho1kg_hu9,0p0Thb0M0w0T0^1 160xhwh30K0v0K2G9,0?0F0T0p290uhdho0c8z1-h=h@0?2?1Q8@0%0H1Lh8040h00hd2c1 dK0f2g181 8@0p1w0bi70Tib9,0K2X0{1 0b0Nix1yi62U3t1o1a0uh?1~h~dihA0%iq31izhgh.0G1j0?iX0?3tfEfEh?iL3?0N0T1~iQit1a0xhn2Uhxhz8?1 0uh/1?1Q2u2@0H0p0Zh.0?0K0G2RiPi$hc2?2Qhw3l19dl0Ui;0d2Shyh3310D0MiD0p0q0v0w28e:ifih1P1R3:1X1Z1#1%1)1+1-241=1@1_2eg+1~3:jP261^i22b2.2f3t0=3c2m2o5z2D2u2w2yaej.7A120$1*1,gM3a2)0!2+j$j$79505G0%7c2|k44Y337e73j}f06B6@6(6Re$0J3B3D3F705xeG6%6p6dgDkl3%3)5#9Kks5S5+bX9E0S620p645?aykAkhkt5T9|kl6g0p6ikK6MkM5BkOkD6skl6u0p6wkV6!krkNkCf$kF6I0p6Kk*6;k,kYk.kk0S6W0p6Yk@6lcBkB6ckPkvbP5ckzl3k-l5k!5Vkl6}0p6 l1kqf7l46)b,klc35Llak_53ki6_l75X5Kkolk5O5`lnkjlpdd5Z5;lCdglFlxkElq6261ltlmlclokQem5KkU662(7f2(75g#g%g$3:7b1Il)l%4ul#05gWgv8JcNlqd7k/l|dblycXaNdIfxkf22ca7@eM0gcei}8@3si^0ugiaie f|gOc#bsmldN04e2dpe*c#blmpcxcIgt7*4QdRkwl}k|2nm0lP8dc4cYgHec9Mmogua`f5gmfz04brf@c-mtc!eIa^4tfXf~l{kGmFlHdY8Tl~m,mLgceGa@mwmRe4agmUgObkmYf_m$m`67m)gw86kRm-lXesm:k|8MaLmNe4aOaQgLbCmkm{gn04a-gNfI04a;nsf1mPeff@bBnw2qc{b6m!aebbnmbfcrakn4gjnH12nvm~8 mWm%no3:fenS5ia~b0nC22nEmAg;f}n78Kk$nal7e!ndlH9Fb?f|mD9^n:mJfpn?lXa4c5nim4c97(m64cce0Ucgc$ckgSo8bHeanWmmeIc=mxcHmse?e*cDfaefh55^n6l`kFf!n,m;f(o0l7f+mMhGaXf;oegioIbzf^n%0}0+0N12j82@n*fhm*kFg1oBk|bUgCmJg9oHorfPhCdnn1oQe57Ljzjpe9bG0%5Y02030E0Y0ehTo~p0fNf4bIoXl_9sn.5sn}k#pdmIpfgFo,gI0qd+o=eH92d/d;j|nGm^gPomojmqovn5ejoZlq5J4/dVlXb{phlf5Iftd(pvgegqe:oMbnglpunpmdg|0Nmgmi7+nnmBpvf`p7opfGorf9cFognYm(pCn-m+lzpGeplycTo)pfp{9Gf.m3d-m5pWmVpQh.gre;f@fKfMfOe-o/fTp7pA80p^oylq88gzpImHq0pLd6m?gbpOnpoKdEo=e_poeBfbowqopbp`dTo$lHd$pK4@lQpNf-o-qigghDo;nZ3fgoe.qcgi9:nWn{ewp|eY41lqncg6m;q.q3nhbunjgKaTn29fgRq*7PgV3ul$73g.g!2)g%2)g)i2l(7d8l0-0/0;0%04.
# Tests(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)