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

###(Dés-)Active le code aprÚs la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activĂ©, le texte copiĂ© dans le terminal est joint sur une seule ligne avant d'ĂȘtre copiĂ© dans le presse-papier
Évaluations restantes : 5/5

.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.