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_4:2!-.Sw3/]+7bpPiqoF1tl(9 ;=vTm6u8Rsèfrgàe[hcé05a,nkydx)050%0R0x0Y0s0y0L0B0U0y0Y0L0L0D010x0s0q010406050L0I0G0G0Y0O0$040i0u0y0I0}0u0!050l1416181a120q04051q1j1t0l1q120%0s0E0=0@0_0{0@0!0P0I0Y0P0R0g0q0$0x0T1h0B0T0s0P0T0y1V0T0x10050-0p0y0R1C0^0`011U1W1Y1W0x1(1*1$0x0O1r1Q0=1d0L0q0Y0!0{0e011,1E010N0/0R0!0Y0G0R1$2123281.2b1*2e2g100a0B0r0O0u0q0u0L0s1g0!0B0+1 0O0O0R0U2B1j2j0!1r0l1Q2O1{1}1|1%0%2l1F0s0!2d2y1$1z1B0?1-2Y2!0!0u2(1$0q2H1r2M2O2^13222C2*292.0O170y1$0Y1T2H0N0{030b0b0U2/0R1Y2-0u0g0w3j100B0w1j0Y2_2|112{2k2~1.303234360R38013a3c3e3g2#3j0g26040B0e3p3r233t2M2X013y0Y331r350T37393b3d0+3I2.3K0k3m0k3Q2L3s123U3w0{3X3Z053#3%3E3)3H2Z3J3k0c3m0c3=1k3@3u2}1D3x0u313Y3A3$3C3(3G3+443-3k0X3m0X4a2^3^2|3V3|4k403F3*3f4q3i3k0H3m0H4w4c3_4f3{4h3z3!3B3D4E433h3K0o3m0o4N3S4y3v4Q3W4S4j4U4l4W424p4Z3k0J3m0J4(2N4*4e2+4-4i3}3 4m414o4G4^0g0A3m0A4}3T4z3`524T3~4V4n4F3,4I3j0W100w0W5f4 4A4.545m575o4H3K0w0w5t3o0l3q3?4)4d5y534C564X4@453j3M0w3P5K3R4~5O5i4B4:4D4?595V0w3/045/5w5%4,5)5l4;5n4Y5.475;495!5M5$4P515_554=585p5F4t5;4v624b5N652 5z5R695D5a0w4K5;4M6g4x5@666l5*5S5,6b3k0w4#5;4%6u4O5h5^6y5`5+6a5E6D4`5;4|6I6i6K6x5Q6z6n5}4r3j5c5;5e6V646X6k6Z6N6A6P5a0e5s046^5?6j4g6:685|5U6%0e5H6`5J5L6h6-4+6Y5k705C6$5q0e3M7i6|6.6~7d5B5T5-735:0e3;6,5g7b6/7o5{7f727h5 0e61786v6}4R6 7p6B6Q3L6d0e6f7I6J7y7n4/6;6#7D3K0e6r7%7l7W7L7A6O6o5V0e6F7;7*507z7Y7e7q6C3L6S0e6U7U6W7+5j7`7N6?7:6)0e6+827a7^7X5A7B7|7P0k6_8l7@5P7-6=7/6%0k758u8o5(6M7{7O5a0k3M8D8x6L7M8i8B5V0k5:8M8G7c868J888t5 0k7H5#2O2=0R2O2(2R0%1}2W5i4F2%1A1r8!2@3s631r4F8=2k0s0%0{3b2M5F3A8|8~8T5q5H0B2p0R948s961$627K010#100+0N8@6w290j3m9m9g0!0N100R0L0x0b0I0!0b4h0%2H9r7m0{0 040z9G840!101(9M8f9I100)0d8@12798`2C93018 2|7$928}9%959*982f9a9-9c9*2O5L9g9p3N0B9~9R3V0L0%1002030k0A0Ca5a7a9a6a89Xa09$9(233.9+9b7gak9:2gam7#3k5:3=9ga23m9~0B0K2d0E0u0s1+0F0O0I1+2z0B1(0B9w0x2D1+0y1h1I0R0I0O98aOaQ3d0!0}2daQ0x0u0I0;1*0Laf9Z5Oah0b9046al9?ana`ap9=8K6%5 av9H01ax9}9~a)aF0O0;2E0w0B0Q980Z0B0v3Y0LaK2Z1ha;2`3Ua@a_0g6d5la@9@4s2799ar7r5qbx9fb5b7az0Baaa8bNacabbr8?bt9,ai0!3K6rbybV9.4JbC9;bE7}bZ5!bL9n3x101i9Z0Bb/0{0u100D8@b@9s0p102oa05i9J9La=9s9P0Y0pc34,9J0)bS3Sa?b#bv6Fb!b*7P4#a cn5aclb-azb^010U75030Ba/aOa%bb0;0Ea-cB4hbd0I0B220O3daXa:9Z9Ybs4zbu9)4_a{b15q4`cqa|as0g6S3Qb.c804cHcS2^b~b5b`04b|b?cw9J0S0mb}cUbTcWcjcY5bc!b$d7c(c#3K6)3Qd2chbU94bv5ud8bA5rb(aqc)bF5F6_c-cv9g9i040N4hb}cw9O040(dC9g0u9|2ZdHb5dE9Qc7b59J9WcTagd5aj6D75cmdr7}5Gdpb0d9d%9_b8bLc@84dy0s9lc|c/dGd@c^a40y0x0CdM840G0s5te09S01dJ10dBd`9N10d_c?cwc_020Pd~e54Ab;el5ie804eaefd^eo4,eqdLebe6dEc;cc51dSd1dVdjd65Ydma}5Wd(cr5.3Mdvd.d.cwdy2H0xaXb=etb50#0U10bl0:0Rcg2NcieIdX3jau35bzeM5/eOd#7Pe`d,eT9 c/eCdQ84c_0heD2 100Y0q0q2d0%f81.c5fg3{edfj01ceeGf49#dWbX6Db3e@b#dn0w47dbd*b3cuf1e$10eXeZev51e%10aHaJe-9!0BcXe;0wbxfweP6%fVe{dc6DbH3qdge.di9-dkbZfXe|6p4KfBfyb,9`fG049kfm9|b@fq4A9u042.0G0p2H0b2x2Z0x0L0baI0qeY9Fg1c410c6cVecer0O9Ee,gjcd9UdT6vg1fTft3jclf:f$gBf#d*ctf`84f cvgt51b7bPgQadd dUgyfs5Fc,gDd*c%bDf;5.c,bI84bKazaB0!aDaFcB1+g5g71+2Egaa%aR0Bgfghg_1+9D2H0B0t0I0sg~0R2=0Vbna%1+fQe/f-eJdegZfy5cf@e_deg*e6g,9~9A0Bh3h10B0P0M2!bd1+0U3$0u0G2yhHgsgxgnfre:gA6^eLc*hRhohTduhra1a3d-gRabbPhgf,bW7$dZhleM74gGdnh:e dwb5cy10cA1S0E0V0Od=g;h6h2gqh4aP0Bhvhxg}hAhCh)d4hP7$eRh.hT26hVds3k7i9e3qc.f{1-0R0O0xfKf904aP9z9BhxfmfigNiziEiHfh9UfphNfSgWioe?iPfY7h3/im7}7uiqd-dDenez3Vc_c{e#9Nc004c2iK9T9KfmdEiJiOgk04cfgUiOgz7$fviTg%73fAg$gE7Gi!isgo0!cbi(epb{iy1.e2105vi~d38{iQ7QhSinjriX7P7Sjah^d:10d=jifkgpgriF100Sfmjk04jmi`gu04d0jfew100fi+3sd/e6jL5JjOeE10gwjXcwh`04cA1*cN2He2iv98bPi7220;bfiejpigiof/j3j8f?j7d97%jyeTi$g4jei,e6i*jD3Wb;kcj*dI100nkgj!j}hOhie;7;jsiYcpk5h=gIi#c/0skgkfjS51jLjN4cgVj 7~kvjwg#b)j47hg)irjze6dy0j1U1*kgdEkDkG29ehd}gTkdemg4kE100gkoe35;jH04j)3S0Bf*fRj0iohkk2k6hnkyh/hqkVk9dxjBd?k.5(e9i5hLjoe6c~i@jBk;04knk)jjk^j#lk3V9JjRlfjT04k?lsjEi_lwi{jJi;kh04k(j$29lykE9|2.ixlEe7dKe!kkdRjIfmc_lDlOlte4lK9J0Zk@l+l)i=0mk|2NjY3Vj,j.bP0V0U18aQ0!j^9xcN0^3ng0hMlwl10g8lkO8C5sjvmfk8f0fFjckjk}egjhlVdEjdlplrlAkHlukql4bv8ume8L97l7c*mCh@lbdNlolVkFmwizlNlZf5kml/k_jndhifksgA8DmD8tilmGjtm$mJl_5id;lemSeAlhjGl,l#lKk%k`lzm=i)jUjWmoc/lYmY84eFlVl{g=aR0O0!bbj@gSj_m62Cmzmb8Mm%5qnnmh8LaufEeUn4mnl^mpc`k$kimumVlv5NkLm!3.j2e^mHj6kRgE8WmjeVfH0,fJmrnCmXe.0l8_1u2?1j8%1j0x8)n*2U2Pca1*8$8/9Y0+0-0/0L04.