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
.128013f6S=d-Úpg2m!R 8P5)kus_hq0:F4yr./oTxbc1w937ve[l,+tà i]né;a(050f0S0X0(0Z0U0v0o0L0U0(0v0v0e010X0Z0i010406050v0u0l0l0(0E0D040d0H0U0u0}0H0#050G1416181a120i04051q1j1t0G1q120f0Z0R0=0@0_0{0x0Z0j0x0U1H0x0X10050-0K0U0S1C0^0`011G1I1K1I0X1Q1S1O0X0E1r0X0x0=1d0v0i0(0#0{0k011U1E010b0/0S0#0(0l0S1O1;1?1{1W1~1S2123100a0o0q0E0H0i0H0v0Z1g0#0o0+1/0E0E0S0L2o1j260#1r0G1-2B1*1,1+1P0f280{1K0#202l1O1z1B0?1V2L0Z2N0#0H2R1O0i2u1r2z2B2)131=2p2T1|2Y0E170U100o0M2y2-112,272/1W2;2?2^0k2{1?2}2z2K01320(2@040o0P362A1239300{3c3e0o0C3i382-3a3o2^0r3s3k3u3m3b0H2=3d2^0c3z2~2.1D313E333f0Q3J3l3M3n3O3G3f0p3S3B3U3D3F3p0O3!2 3$3w040M0z3+3L2U3%3P0M2`1k2|3A3,3@3.0M353|373~3?2:3W3e0M3h443j3K3v49100M3r4d3t3 483(4i3y4l464g4p3/3I4s4f3C413R4y3T404h3/3Z4D3#4F4v0M3*4J4n3N4v0k3;4P474R3P0k3{2)4t4A4G0k434#4z3-4(4c4+4E4o4Y4k4:4K4=3X0k4r4^4Q3V4S4x4~4W504Y4C534u4Y4I584%4S4O5c4-4v0P4U5g4L3P0P4!3}4,5m3X0P4*5q4;4X5t4/5w4_5y3e0P4@2|1u2%1j2R2E0f1,2J3C0L2Z241r5L1s5J2+4l055R0+2(5C0{0t100+0b3s5r1|0N2^5.5x3n0b100S0v0X0w0u0#0w3E0f2u5?5(010 040)654 3b101Q6b5467100s0A3=3a5;3f0o6q6g3a0v0f1002030P0O0%6x6z6B6y6A6m3C6u2^6q0o0n200R0H0Z1T0I0E0u1T2m0o1Q0o5{0X2q1T0U1h0j6V0u0E0o2p0,1/0#0}206$0X0H0u0;1S0v6H3$6J6p6q6^6R0E0;2r0M0o0Y6/0V0o0B3d0v6W2W1h703@726L0o6C6A7r6E6D3z7p5/31101i4l0o7y0{0H100e3s7D5@3b0K102b6s3C686a5Z7L0#6e0(0K7Q3$680s7w6L7E010L0M10030o6~6!6?760;0R6|7:3E780u0o1=0E5R6-6 4s7x7V107_842)7K667G047I7C7*680T0!7J060686665*040b3E7J7*7W040J8v7L0H6o2W8A668x6f7U66686l857p7)7L8r0Z5-8h878y8F6c8e020U0X0%8X6h0l0Z4i8(3a8C108u8U8G108z8=8Y6w0j8$8-4A7A8~3$8/048;8b8w8@913@938E8_6h8x897!3@8L8m8O9l8c6c8r2u0X6-7B968Q0L107g0:0S7(9l97049g8J8`040F9h2:100(0i0i200f9K1W7S9S3n989G6h7$9k8P8q109q9s991|0t9w046T6V3z4$3$8r5,9V016o7D9Y3v5_042Y0l0K2u0w2k2W0X0v0w6U0i9r649~7R107T2+8V62afak8K6j8M5l5:6K6rag716v047taA6F8%4V6tay7p6N0#6P6R7:1Ta2a41T2ra76?6%0oacaeaQ1Tam1T0y0u0ZaV0S2$0$7i6?1T7m1|7o6L5 0oa!aU0j0h2N781T0L0x2i0l2l0H23a:1Wa=6qaB6D7t9B9n6h7,7.a^2p0R0$0E8SaLa$aZ0E631T6#0oa@a_2ra{a}be7*8r1V0S0E0X9+7z046#5~60a!9`9Uaw408:bsan5H7L9!7C8o9$6c8x9t2|bf8.7HbJ3n7N047PbS1|bRaob%bUbtbQ6jbC8V0#7Z9db,8fb.018*105k3}8p9o108Sc68xbPb?9T100T9`c804ca378i108lc33C8e0m8g9u66co5pcrbY10arb*7*bh047/1S7 2u8*bG6/7tbv1=0;7abecc9e7Ac2cA9HczcIc0c$c*8d100Wc6cCb 8?040Zc68ec)37b+3Ccocq3jcZ3a8r0N1G1Scgcec`6w8#aDc%c!a1db040gc;8+3/b}04cHc}b#9C8Qce8Tdf3vb{bWcEap04cmcj9Wc^dic:cv3$c=dF6i04cudxcw10dkdKbT94bV9AdN8j9`8xc_d!ctc`6o2YbIdV1|9bb)c}csdD9`8edUb_8)dmcD2Ad@0Vdl8,d)dPdq2Ac~3$cKcM7t0$0L186$0#cT5|7 0^2_9}4#9m8O9Dc1dic|e8esc,d?8Bc/e3dn8Ndtc@d(dR92b-d/bKeHc-9HdJeI3@dMepb$6h8RdweOdgcid|3ad#dNd%dodQeZc4cyd9dhe5e73fcJ7-cLaM6%0E0#76cSaCcUem2pcYeVdya1eyeweAc5eLdGetfd018eeQe-c d~c?cd049)e}e:ff4+0G5#0S2B2$fx5K1A5M2E2H2C7Y1S2B5L120G0+0-0/0v04.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)