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

Python Console Session
>>> 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

.128013;=wSd-gnh.F+uerv6x,é9tàkè5b]l[f:431(aRp/)omq 7!2iyc8s_PT0050f0o0w0L0X0D0#0T0Z0D0L0#0#0c010w0X0N010406050#0n0R0R0L0p0Y040e0Q0D0n0}0Q0i050O1416181a120N04051q1j1t0O1q120f0X0q0=0@0_0{0@0i0h0n0L0h0o0g0N0Y0w0j1h0T0j0X0h0j0D1V0j0w10050-0B0D0o1C0^0`011U1W1Y1W0w1(1*1$0w0p1r1Q0=1d0#0N0L0i0{0W011,1E010F0/0o0i0L0R0o1$2123281.2b1*2e2g100a0T0%0p0Q0N0Q0#0X1g0i0T0+1 0p0p0o0Z2B1j2j0i1r0O1Q2O1{1}1|1%0f2l1F0X0i2d2y1$1z1B0?1-2Y2!0i0Q2(1$0N2H1r2M2O2^13222C2*292.0p170D1$0L1T2H0F0{030$0$0Z2/0o1Y2-0Q0g0J3j100T0J1j0L2_2|112{2k2~1.303234360o38013a3c3e3g2#3j0g26040T0W3p3r233t2M2X013y0L331r350j37393b3d0+3I2.3K0I3m0I3Q2L3s123U3w0{3X3Z053#3%3E3)3H2Z3J3k0H3m0H3=1k3@3u2}1D3x0Q313Y3A3$3C3(3G3+443-3k0A3m0A4a2^3^2|3V3|4k403F3*3f4q3i3k0r3m0r4w4c3_4f3{4h3z3!3B3D4E433h3K0U3m0U4N3S4y3v4Q3W4S4j4U4l4W424p4Z3k0!3m0!4(2N4*4e2+4-4i3}3 4m414o4G4^0g0v3m0v4}3T4z3`524T3~4V4n4F3,4I3j0)100J0)5f4 4A4.545m575o4H3K0J0J5t3o0O3q3?4)4d5y534C564X4@453j3M0J3P5K3R4~5O5i4B4:4D4?595V0J3/045/5w5%4,5)5l4;5n4Y5.475;495!5M5$4P515_554=585p5F4t5;4v624b5N652 5z5R695D5a0J4K5;4M6g4x5@666l5*5S5,6b3k0J4#5;4%6u4O5h5^6y5`5+6a5E6D4`5;4|6I6i6K6x5Q6z6n5}4r3j5c5;5e6V646X6k6Z6N6A6P5a0W5s046^5?6j4g6:685|5U6%0W5H6`5J5L6h6-4+6Y5k705C6$5q0W3M7i6|6.6~7d5B5T5-735:0W3;6,5g7b6/7o5{7f727h5 0W61786v6}4R6 7p6B6Q3L6d0W6f7I6J7y7n4/6;6#7D3K0W6r7%7l7W7L7A6O6o5V0W6F7;7*507z7Y7e7q6C3L6S0W6U7U6W7+5j7`7N6?7:6)0W6+827a7^7X5A7B7|7P0I6_8l7@5P7-6=7/6%0I758u8o5(6M7{7O5a0I3M8D8x6L7M8i8B5V0I5:8M8G7c868J888t5 0I7H5#2O2=0o2O2(2R0f1}2W5i4F2%1A1r8!2@3s631r4F8=2k0X0f0{3b2M5F3A8|8~8T5q5H0T2p0o948s961$627K010y100+0F8@6w290d3m9m9g0i0F100o0#0w0$0n0i0$4h0f2H9r7m0{0 040K9G840i101(9M8f9I100P0G8@12798`2C93018 2|7$928}9%959*982f9a9-9c9*2O5L9g9p3N0T9~9R3V0#0f1002030I0v0ba5a7a9a6a89Xa09$9(233.9+9b7gak9:2gam7#3k5:3=9ga23m9~0T0M2d0q0Q0X1+0(0p0n1+2z0T1(0T9w0w2D1+0D1h1I0o0n0p98aOaQ3d0i0}2daQ0w0Q0n0;1*0#af9Z5Oah0$9046al9?ana`ap9=8K6%5 av9H01ax9}9~a)aF0p0;2E0J0T0x980t0T0l3Y0#aK2Z1ha;2`3Ua@a_0g6d5la@9@4s2799ar7r5qbx9fb5b7az0Taaa8bNacabbr8?bt9,ai0i3K6rbybV9.4JbC9;bE7}bZ5!bL9n3x101i9Z0Tb/0{0Q100c8@b@9s0B102oa05i9J9La=9s9P0L0Bc34,9J0PbS3Sa?b#bv6Fb!b*7P4#a cn5aclb-azb^010Z75030Ta/aOa%bb0;0qa-cB4hbd0n0T220p3daXa:9Z9Ybs4zbu9)4_a{b15q4`cqa|as0g6S3Qb.c804cHcS2^b~b5b`04b|b?cw9J0E0Cb}cUbTcWcjcY5bc!b$d7c(c#3K6)3Qd2chbU94bv5ud8bA5rb(aqc)bF5F6_c-cv9g9i040F4hb}cw9O040sdC9g0Q9|2ZdHb5dE9Qc7b59J9WcTagd5aj6D75cmdr7}5Gdpb0d9d%9_b8bLc@84dy0X9lc|c/dGd@c^a40D0w0bdM840R0X5te09S01dJ10dBd`9N10d_c?cwc_020hd~e54Ab;el5ie804eaefd^eo4,eqdLebe6dEc;cc51dSd1dVdjd65Ydma}5Wd(cr5.3Mdvd.d.cwdy2H0waXb=etb50y0Z10bl0:0ocg2NcieIdX3jau35bzeM5/eOd#7Pe`d,eT9 c/eCdQ84c_0keD2 100L0N0N2d0ff81.c5fg3{edfj01ceeGf49#dWbX6Db3e@b#dn0J47dbd*b3cuf1e$10eXeZev51e%10aHaJe-9!0TcXe;0JbxfweP6%fVe{dc6DbH3qdge.di9-dkbZfXe|6p4KfBfyb,9`fG049kfm9|b@fq4A9u042.0R0B2H0$2x2Z0w0#0$aI0NeY9Fg1c410c6cVecer0p9Ee,gjcd9UdT6vg1fTft3jclf:f$gBf#d*ctf`84f cvgt51b7bPgQadd dUgyfs5Fc,gDd*c%bDf;5.c,bI84bKazaB0iaDaFcB1+g5g71+2Egaa%aR0Tgfghg_1+9D2H0T0S0n0Xg~0o2=0ubna%1+fQe/f-eJdegZfy5cf@e_deg*e6g,9~9A0Th3h10T0h0z2!bd1+0Z3$0Q0R2yhHgsgxgnfre:gA6^eLc*hRhohTduhra1a3d-gRabbPhgf,bW7$dZhleM74gGdnh:e dwb5cy10cA1S0q0u0pd=g;h6h2gqh4aP0Thvhxg}hAhCh)d4hP7$eRh.hT26hVds3k7i9e3qc.f{1-0o0p0wfKf904aP9z9BhxfmfigNiziEiHfh9UfphNfSgWioe?iPfY7h3/im7}7uiqd-dDenez3Vc_c{e#9Nc004c2iK9T9KfmdEiJiOgk04cfgUiOgz7$fviTg%73fAg$gE7Gi!isgo0icbi(epb{iy1.e2105vi~d38{iQ7QhSinjriX7P7Sjah^d:10d=jifkgpgriF100Efmjk04jmi`gu04d0jfew100Vi+3sd/e6jL5JjOeE10gwjXcwh`04cA1*cN2He2iv98bPi7220;bfiejpigiof/j3j8f?j7d97%jyeTi$g4jei,e6i*jD3Wb;kcj*dI100mkgj!j}hOhie;7;jsiYcpk5h=gIi#c/0XkgkfjS51jLjN4cgVj 7~kvjwg#b)j47hg)irjze6dy0d1U1*kgdEkDkG29ehd}gTkdemg4kE100gkoe35;jH04j)3S0Tf*fRj0iohkk2k6hnkyh/hqkVk9dxjBd?k.5(e9i5hLjoe6c~i@jBk;04knk)jjk^j#lk3V9JjRlfjT04k?lsjEi_lwi{jJi;kh04k(j$29lykE9|2.ixlEe7dKe!kkdRjIfmc_lDlOlte4lK9J0tk@l+l)i=0Ck|2NjY3Vj,j.bP0u0Z18aQ0ij^9xcN0^3ng0hMlwl10g8lkO8C5sjvmfk8f0fFjckjk}egjhlVdEjdlplrlAkHlukql4bv8ume8L97l7c*mCh@lbdNlolVkFmwizlNlZf5kml/k_jndhifksgA8DmD8tilmGjtm$mJl_5id;lemSeAlhjGl,l#lKk%k`lzm=i)jUjWmoc/lYmY84eFlVl{g=aR0p0ibbj@gSj_m62Cmzmb8Mm%5qnnmh8LaufEeUn4mnl^mpc`k$kimumVlv5NkLm!3.j2e^mHj6kRgE8WmjeVfH0,fJmrnCmXe.0O8_1u2?1j8%1j0w8)n*2U2Pca1*8$8/9Y0+0-0/0#04.