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]ik[v8o-)yqxb.+g=mT4rs97f,d :F5hwtcl0p_!P3(a;R/àeèS612énu050B0X0I0S0c0K0w0C0J0K0S0w0w0r010I0c0M010406050w0)0s0s0S0v0k040Z0h0K0)0}0h0(050V1416181a120M04051q1j1t0V1q120B0c0f0=0@0_0{0@0(0q0)0S0q0X0i0M0k0I0G1h0C0G0c0q0G0K1V0G0I10050-0n0K0X1C0^0`011U1W1Y1W0I1(1*1$0I0v1r1Q0=1d0w0M0S0(0{0$011,1E010z0/0X0(0S0s0X1$2123281.2b1*2e2g100a0C0P0v0h0M0h0w0c1g0(0C0+1 0v0v0X0J2B1j2j0(1r0V1Q2O1{1}1|1%0B2l1F0c0(2d2y1$1z1B0?1-2Y2!0(0h2(1$0M2H1r2M2O2^13222C2*292.0v170K1$0S1T2H0z0{030N0N0J2/0X1Y2-0h0i0#3j100C0#1j0S2_2|112{2k2~1.303234360X38013a3c3e3g2#3j0i26040C0$3p3r233t2M2X013y0S331r350G37393b3d0+3I2.3K0Q3m0Q3Q2L3s123U3w0{3X3Z053#3%3E3)3H2Z3J3k0u3m0u3=1k3@3u2}1D3x0h313Y3A3$3C3(3G3+443-3k0F3m0F4a2^3^2|3V3|4k403F3*3f4q3i3k0!3m0!4w4c3_4f3{4h3z3!3B3D4E433h3K0y3m0y4N3S4y3v4Q3W4S4j4U4l4W424p4Z3k0g3m0g4(2N4*4e2+4-4i3}3 4m414o4G4^0i0x3m0x4}3T4z3`524T3~4V4n4F3,4I3j0L100#0L5f4 4A4.545m575o4H3K0#0#5t3o0V3q3?4)4d5y534C564X4@453j3M0#3P5K3R4~5O5i4B4:4D4?595V0#3/045/5w5%4,5)5l4;5n4Y5.475;495!5M5$4P515_554=585p5F4t5;4v624b5N652 5z5R695D5a0#4K5;4M6g4x5@666l5*5S5,6b3k0#4#5;4%6u4O5h5^6y5`5+6a5E6D4`5;4|6I6i6K6x5Q6z6n5}4r3j5c5;5e6V646X6k6Z6N6A6P5a0$5s046^5?6j4g6:685|5U6%0$5H6`5J5L6h6-4+6Y5k705C6$5q0$3M7i6|6.6~7d5B5T5-735:0$3;6,5g7b6/7o5{7f727h5 0$61786v6}4R6 7p6B6Q3L6d0$6f7I6J7y7n4/6;6#7D3K0$6r7%7l7W7L7A6O6o5V0$6F7;7*507z7Y7e7q6C3L6S0$6U7U6W7+5j7`7N6?7:6)0$6+827a7^7X5A7B7|7P0Q6_8l7@5P7-6=7/6%0Q758u8o5(6M7{7O5a0Q3M8D8x6L7M8i8B5V0Q5:8M8G7c868J888t5 0Q7H5#2O2=0X2O2(2R0B1}2W5i4F2%1A1r8!2@3s631r4F8=2k0c0B0{3b2M5F3A8|8~8T5q5H0C2p0X948s961$627K010d100+0z8@6w290H3m9m9g0(0z100X0w0I0N0)0(0N4h0B2H9r7m0{0 040R9G840(101(9M8f9I100j0D8@12798`2C93018 2|7$928}9%959*982f9a9-9c9*2O5L9g9p3N0C9~9R3V0w0B1002030Q0x0Ta5a7a9a6a89Xa09$9(233.9+9b7gak9:2gam7#3k5:3=9ga23m9~0C0U2d0f0h0c1+0t0v0)1+2z0C1(0C9w0I2D1+0K1h1I0X0)0v98aOaQ3d0(0}2daQ0I0h0)0;1*0waf9Z5Oah0N9046al9?ana`ap9=8K6%5 av9H01ax9}9~a)aF0v0;2E0#0C0W980A0C0E3Y0waK2Z1ha;2`3Ua@a_0i6d5la@9@4s2799ar7r5qbx9fb5b7az0Caaa8bNacabbr8?bt9,ai0(3K6rbybV9.4JbC9;bE7}bZ5!bL9n3x101i9Z0Cb/0{0h100r8@b@9s0n102oa05i9J9La=9s9P0S0nc34,9J0jbS3Sa?b#bv6Fb!b*7P4#a cn5aclb-azb^010J75030Ca/aOa%bb0;0fa-cB4hbd0)0C220v3daXa:9Z9Ybs4zbu9)4_a{b15q4`cqa|as0i6S3Qb.c804cHcS2^b~b5b`04b|b?cw9J0e0bb}cUbTcWcjcY5bc!b$d7c(c#3K6)3Qd2chbU94bv5ud8bA5rb(aqc)bF5F6_c-cv9g9i040z4hb}cw9O040mdC9g0h9|2ZdHb5dE9Qc7b59J9WcTagd5aj6D75cmdr7}5Gdpb0d9d%9_b8bLc@84dy0c9lc|c/dGd@c^a40K0I0TdM840s0c5te09S01dJ10dBd`9N10d_c?cwc_020qd~e54Ab;el5ie804eaefd^eo4,eqdLebe6dEc;cc51dSd1dVdjd65Ydma}5Wd(cr5.3Mdvd.d.cwdy2H0IaXb=etb50d0J10bl0:0Xcg2NcieIdX3jau35bzeM5/eOd#7Pe`d,eT9 c/eCdQ84c_0oeD2 100S0M0M2d0Bf81.c5fg3{edfj01ceeGf49#dWbX6Db3e@b#dn0#47dbd*b3cuf1e$10eXeZev51e%10aHaJe-9!0CcXe;0#bxfweP6%fVe{dc6DbH3qdge.di9-dkbZfXe|6p4KfBfyb,9`fG049kfm9|b@fq4A9u042.0s0n2H0N2x2Z0I0w0NaI0MeY9Fg1c410c6cVecer0v9Ee,gjcd9UdT6vg1fTft3jclf:f$gBf#d*ctf`84f cvgt51b7bPgQadd dUgyfs5Fc,gDd*c%bDf;5.c,bI84bKazaB0(aDaFcB1+g5g71+2Egaa%aR0Cgfghg_1+9D2H0C0l0)0cg~0X2=0%bna%1+fQe/f-eJdegZfy5cf@e_deg*e6g,9~9A0Ch3h10C0q0Y2!bd1+0J3$0h0s2yhHgsgxgnfre:gA6^eLc*hRhohTduhra1a3d-gRabbPhgf,bW7$dZhleM74gGdnh:e dwb5cy10cA1S0f0%0vd=g;h6h2gqh4aP0Chvhxg}hAhCh)d4hP7$eRh.hT26hVds3k7i9e3qc.f{1-0X0v0IfKf904aP9z9BhxfmfigNiziEiHfh9UfphNfSgWioe?iPfY7h3/im7}7uiqd-dDenez3Vc_c{e#9Nc004c2iK9T9KfmdEiJiOgk04cfgUiOgz7$fviTg%73fAg$gE7Gi!isgo0(cbi(epb{iy1.e2105vi~d38{iQ7QhSinjriX7P7Sjah^d:10d=jifkgpgriF100efmjk04jmi`gu04d0jfew100Oi+3sd/e6jL5JjOeE10gwjXcwh`04cA1*cN2He2iv98bPi7220;bfiejpigiof/j3j8f?j7d97%jyeTi$g4jei,e6i*jD3Wb;kcj*dI100pkgj!j}hOhie;7;jsiYcpk5h=gIi#c/0ckgkfjS51jLjN4cgVj 7~kvjwg#b)j47hg)irjze6dy0H1U1*kgdEkDkG29ehd}gTkdemg4kE100ikoe35;jH04j)3S0Cf*fRj0iohkk2k6hnkyh/hqkVk9dxjBd?k.5(e9i5hLjoe6c~i@jBk;04knk)jjk^j#lk3V9JjRlfjT04k?lsjEi_lwi{jJi;kh04k(j$29lykE9|2.ixlEe7dKe!kkdRjIfmc_lDlOlte4lK9J0Ak@l+l)i=0bk|2NjY3Vj,j.bP0%0J18aQ0(j^9xcN0^3ng0hMlwl10i8lkO8C5sjvmfk8f0fFjckjk}egjhlVdEjdlplrlAkHlukql4bv8ume8L97l7c*mCh@lbdNlolVkFmwizlNlZf5kml/k_jndhifksgA8DmD8tilmGjtm$mJl_5id;lemSeAlhjGl,l#lKk%k`lzm=i)jUjWmoc/lYmY84eFlVl{g=aR0v0(bbj@gSj_m62Cmzmb8Mm%5qnnmh8LaufEeUn4mnl^mpc`k$kimumVlv5NkLm!3.j2e^mHj6kRgE8WmjeVfH0,fJmrnCmXe.0V8_1u2?1j8%1j0I8)n*2U2Pca1*8$8/9Y0+0-0/0w04.