Points de rupture
Lâordre des gĂšnes sur un chromosome est reprĂ©sentĂ© par un tableau ordre
de n
cases
dâentiers distincts deux Ă deux et compris entre 1 et n
.
Par exemple, ordre = [5, 4, 3, 6, 7, 2, 1, 8, 9]
dans le cas n = 9
.
On dit quâil y a un point de rupture dans ordre
dans chacune des situations suivantes :
- la premiĂšre valeur de
ordre
nâest pas 1 ;
- lâĂ©cart entre deux gĂšnes consĂ©cutifs nâest pas Ă©gal Ă 1 ;
- la derniĂšre valeur de
ordre
nâest pas n.
Par exemple, si ordre = [5, 4, 3, 6, 7, 2, 1, 8, 9]
avec n = 9
, on a
- un point de rupture au début car 5 est différent de 1
- un point de rupture entre 3 et 6 (lâĂ©cart est de 3)
- un point de rupture entre 7 et 2 (lâĂ©cart est de 5)
- un point de rupture entre 1 et 8 (lâĂ©cart est de 7)
Il y a donc 4 points de rupture.
Compléter les fonctions Python est_un_ordre
et nombre_points_rupture
proposées pour que :
-
la fonction est_un_ordre
renvoie True
si le tableau passé en paramÚtre
représente bien un ordre de gÚnes de chromosome et False
sinon. Elle doit renvoyer
True
si le tableau passé en paramÚtre est de longueur n et contient tous les
entiers de 1 Ă n, False
sinon
-
la fonction nombre_points_rupture
renvoie le nombre de points de rupture
dâun tableau passĂ© en paramĂštre reprĂ©sentant lâordre de gĂšnes dâun
chromosome.
Exemples
đ Console Python>>> est_un_ordre([1, 6, 2, 8, 3, 7])
False
>>> est_un_ordre([5, 4, 3, 6, 7, 2, 1, 8, 9])
True
>>> nombre_points_rupture([5, 4, 3, 6, 7, 2, 1, 8, 9])
4
>>> nombre_points_rupture([1, 2, 3, 4, 5])
0
>>> nombre_points_rupture([1, 6, 2, 8, 3, 7, 4, 5])
7
>>> nombre_points_rupture([2, 1, 3, 4])
2
Compléter le code ci-dessous
.128013y1-]/wi_qP+r 7F9fg;2Rà h)(pn0ldT,4kée!bmc:35a=o[.8t6sSÚuxv050E0K0Y0S0h0D0!0n0O0D0S0!0!0T010Y0h0A010406050!0%0N0N0S0m0b040#0U0D0%0}0U0B050f1416181a120A04051q1j1t0f1q120E0h0)0=0@0_0{0x0h0s0x0D1H0x0Y10050-0M0D0K1C0^0`011G1I1K1I0Y1Q1S1O0Y0m1r0Y0x0=1d0!0A0S0B0{0u011U1E010r0/0K0B0S0N0K1O1;1?1{1W1~1S2123100a0n0k0m0U0A0U0!0h1g0B0n0+1/0m0m0K0O2o1j260B1r0f1-2B1*1,1+1P0E280{1K0B202l1O1z1B0?1V2L0h2N0B0U2R1O0A2u1r2z2B2)131=2p2T1|2Y0m170D100n0c2y2-112,272/1W2;2?2^0u2{1?2}2z2K01320S2@040n0Q362A1239300{3c3e0n0H3i382-3a3o2^0R3s3k3u3m3b0U2=3d2^0Z3z2~2.1D313E333f0o3J3l3M3n3O3G3f0X3S3B3U3D3F3p0q3!2 3$3w040c0C3+3L2U3%3P0c2`1k2|3A3,3@3.0c353|373~3?2:3W3e0c3h443j3K3v49100c3r4d3t3 483(4i3y4l464g4p3/3I4s4f3C413R4y3T404h3/3Z4D3#4F4v0c3*4J4n3N4v0u3;4P474R3P0u3{2)4t4A4G0u434#4z3-4(4c4+4E4o4Y4k4:4K4=3X0u4r4^4Q3V4S4x4~4W504Y4C534u4Y4I584%4S4O5c4-4v0Q4U5g4L3P0Q4!3}4,5m3X0Q4*5q4;4X5t4/5w4_5y3e0Q4@2|1u2%1j2R2E0E1,2J3C0O2Z241r5L1s5J2+4l055R0+2(5C0{0I100+0r3s0n5r2:0r100K0!0Y0i0%0B0i3E0E2u3s5:1W0 040z615x3n101Q675(01640y0P3=3a0g2^0n6m6c4 010!0E1002030Q0q0t6u6w6y6v6x6i3C6r6l6m0v200)0U0h1T0F0m0%1T2m0n1Q0n5@0Y2q1T0D1h0s6R0%0m0n2p0,1/0B0}206Y0Y0U0%0;1S0!6E3$6G3f6m6W6/6N0m0;2r0c0n0w6+0G0n0p3d0!6S2W1h6|3@6~700n6z6x7o6B6A3z7m6269041i4l5/68010U100T5.7v3b0M102b6o546e10665Z7B0B6a0S0M7M3a6f7t707H0O0c10030n6`716:740n0)6^7+3E750%0n1=0m5R6)6{4s7u7S107;7 2)7A6d7D047F7z7H640V0e5.0606816d5*040r3E7G82040(8q886k042W8u6p7T046b7R6d646h807m7#7B8m0h5-8c8r8t8P886t0D0Y0t8z7N0N0h4i8Y3a0U8w8p8S8A108R867H89020s8W8%4A107y8:7B8)108+8}6d8B8/2|876p8 8x8|967H8B847X3C8G8h8J9k977N8m2u0Y6)9b379m3a0I0O107d0:0K7!9k9d836^9g3$890W9H40100S0A0A200E9L1|647Q2+8Q9T63100y9j8K8l109p9r8_3$9w106P6R3z4$9.5+0K8O928A5=7x0U0N0M2u0i2k2W0Y0!0i6Q0A9q608E6p9V9Z7w5~ad9X8F9#8H5l1|8w7uae7N6~7qaw6C8X4V3a7l706J0B6L6N7+1T2Ya12u6Z7`6M6/aNaaac1T2raj1T0j0%0h0n2u2$0J7f6/1T7j1|aC6m5{0naWaN0s0$2N751T0O0x2i0N2la09BaA6F6s6 6max6A7q9C9u5Q7(047*1h7:0J0m8NaHaY1Ta=6X0na:a=2ra@a_bb7H8m1V0K0m0Y9-9M046X5`5|aWah7O65bL8BbKat7Y9#9%6n8r9s2Abc9I7EbE2:7J047LbR9h7PbO900m5 b2alafbT8IbV938{7W8,7N898b9|8Z8#045k3}8k6p8M9{9c8rbQb?7N8ebL8!10c6378d108gb~8(100Lc1cc6dcj3/bL9icqbd7)aI7`2u8!bB6+7qbq1=0;77bbc87N8B0Bb}c2cr8ab$31b|cY0{890lc#01cx5p45cQ3v100hc)c0c)cxcl3jc.3C8m0g1G1Sc)8Bc;cBb!04028VazcV8`7xc=100dc@c4c,2Acn04ao968j9lbyc:cb9t9E04ce5H7Bchb+3-c:dd04c(d43@c+czcodDdfdG2:b/b;dJ040Vb.8xdRcpda9I8w2YbDdN1W998yd%0{dzcfcWdMd.3CdIdA3@640Gdg8$d@9Ucodmdt7B7%cD0D7q0J0O186Y0BcK5^7`0^2_5/b_9lb`8-7xcUcv98b#d+3bc!erc%d{cyeic{dBdVeueqdYbFd3eE1|everd?4#ez3@cad1dPakdxamdSdUeGeTb@04dXeob cscue1b{dcd}9!dlc)e3bfcE0+0m0B73cJaycLef2pcP9(elcTdDe)bYduf3eCdEewdi11eN1|9o0,9,ercSen451j5#0K2B2$fp5K1A5M2E2H2C7V1S2B5L120f0+0-0/0!04.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Ctrl+Clic pour inverser les colonnes)