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

.128013g[ r);/(loF4,6b=ax+5utP7e-h0Tmnk:Séq.èy1cd32!à8_wvpf9R]is050Q0z0w0r0(0j0)0d0P0j0r0)0)0q010w0(0Z010406050)0v0E0E0r0e0N040I0k0j0v0}0k0F050h1416181a120Z04051q1j1t0h1q120Q0(0Y0=0@0_0{0@0F0b0v0r0b0z0A0Z0N0w0B1h0d0B0(0b0B0j1V0B0w10050-0p0j0z1C0^0`011U1W1Y1W0w1(1*1$0w0e1r1Q0=1d0)0Z0r0F0{0S011,1E010!0/0z0F0r0E0z1$2123281.2b1*2e2g100a0d0x0e0k0Z0k0)0(1g0F0d0+1 0e0e0z0P2B1j2j0F1r0h1Q2O1{1}1|1%0Q2l1F0(0F2d2y1$1z1B0?1-2Y2!0F0k2(1$0Z2H1r2M2O2^13222C2*292.0e170j1$0r1T2H0!0{030W0W0P2/0z1Y2-0k0A0O3j100d0O1j0r2_2|112{2k2~1.303234360z38013a3c3e3g2#3j0A26040d0S3p3r233t2M2X013y0r331r350B37393b3d0+3I2.3K0R3m0R3Q2L3s123U3w0{3X3Z053#3%3E3)3H2Z3J3k0m3m0m3=1k3@3u2}1D3x0k313Y3A3$3C3(3G3+443-3k0u3m0u4a2^3^2|3V3|4k403F3*3f4q3i3k0o3m0o4w4c3_4f3{4h3z3!3B3D4E433h3K0y3m0y4N3S4y3v4Q3W4S4j4U4l4W424p4Z3k0V3m0V4(2N4*4e2+4-4i3}3 4m414o4G4^0A0#3m0#4}3T4z3`524T3~4V4n4F3,4I3j0C100O0C5f4 4A4.545m575o4H3K0O0O5t3o0h3q3?4)4d5y534C564X4@453j3M0O3P5K3R4~5O5i4B4:4D4?595V0O3/045/5w5%4,5)5l4;5n4Y5.475;495!5M5$4P515_554=585p5F4t5;4v624b5N652 5z5R695D5a0O4K5;4M6g4x5@666l5*5S5,6b3k0O4#5;4%6u4O5h5^6y5`5+6a5E6D4`5;4|6I6i6K6x5Q6z6n5}4r3j5c5;5e6V646X6k6Z6N6A6P5a0S5s046^5?6j4g6:685|5U6%0S5H6`5J5L6h6-4+6Y5k705C6$5q0S3M7i6|6.6~7d5B5T5-735:0S3;6,5g7b6/7o5{7f727h5 0S61786v6}4R6 7p6B6Q3L6d0S6f7I6J7y7n4/6;6#7D3K0S6r7%7l7W7L7A6O6o5V0S6F7;7*507z7Y7e7q6C3L6S0S6U7U6W7+5j7`7N6?7:6)0S6+827a7^7X5A7B7|7P0R6_8l7@5P7-6=7/6%0R758u8o5(6M7{7O5a0R3M8D8x6L7M8i8B5V0R5:8M8G7c868J888t5 0R7H5#2O2=0z2O2(2R0Q1}2W5i4F2%1A1r8!2@3s631r4F8=2k0(0Q0{3b2M5F3A8|8~8T5q5H0d2p0z948s961$627K010G100+0!8@0d6w2 0!100z0)0w0W0v0F0W4h0Q2H8@9o1.0 040i9C9g0F101(9I7m0{9F0f0H8@12798`2C93018 2|7$928}9Z959$982f9a9)9c9$2O5L9g0X3m0d9`9N840)0Q1002030R0#0ga1a3a5a2a49T9|9X9(9!233.9%9b7gah9,2gaj7#3k5:3=9g9~9_9`0$2d0Y0k0(1+0D0e0v1+2z0d1(0d9s0w2D1+0j1h1I0z0v0e98aKaM3d0F0}2daM0w0k0v0;1*0)ab9V5O9Yaf0F3K5 5la:9*462799ao7r5qa@9f9O01au3N9`aKaZaB0e0;2E0O0d0U980n0d0l3Y0)aG2Z1ha-2`3Ua_904sai9/akbvam9.8K6%6dasb3b5b70da6a4bKa8a7bq8?bsae0Wbu0A6ra^bS9:4Ja|9-a~7}bW5!bI9D3{101i9V9n9g0k100q9mb,3W0p102oac3V9F9Ha.9J9L0r0pb 5i9QbP3Sa/bSbU6FbXb%7P4#bAci5acgb*b7b`0P75030da+b8a!bb0d0Ya)cv4hbc0v0d220e3daTa,9V9Ubr4zbt9#4_bwbC5q4`clbxap0A6S3Qb+c404cBcM2^b;b3b?04b^b:b`9F0c0%9mcObQcQcecS5bcUa`d1cYcV3K6)3Qc|ccbR94bU5ud2bZ5rb#ancZa 5F6_c%cq9g9i040!4hb_c)0sdwc/9^042Zdz849K049Mc3b39F9ScNb cRag6D75chdl7}5GdjbBd3dW9=b6bI9{dr100(9lc?dxdE8f0{c:020j0w0gd/3V0E0(5td`5i0kdBdvd-b3dGdye484d=0bd^d 5^b.ed51e110e3c-b`e6eg29eidCb/elc)c+c84,dLc{dOc dQ5WdgbyeDd5dZ3Mdpd%d%b`ds2H0waTes3sc.840G0P10bk0:0zcb2Ncdddd05/eEc!e+eHdhe+d#eLd(e510evdJe9100Lew66100r0Z0Z2d0Qe 29c1f73x10e7cP84cab:dae%dc9)dea@35a_e:47e/eF0Ob13qc(b3eO0,eReo1.eW10aDaFe$9W0ddPa=6DbEfobYft4tfse-bE5!fifJfL5FbWfPcm5.4KfTdm6Db)9?fy9j3CfC3{9q042.0E0p2H0W2x2Z0w0)0WaE0ZeQ9Be{d:01f9g74Aej0e9Ae#gbc9109RfIe(fle*cgf$dU7P6EdXf%6%gtd#b`dBb+gh4,b5bMgFa9d_dNgbfZ6Re,f+3jcXa}gr6pc$b29}9 d$0dax0FazaBcv1+f_f{1+2Ef~aZaN0dg3g5g,1+9z2H0d0K0v0(g;0z2=0JbmaZ1+glfka;5Fd8gqd66D5cf*dVd8gVg8bHb79w0dg_g@0d0b0M2!bc1+0P3$0k0E2yhygg6vgKeBfM3Ldohbd36^gugS7:dohi3Vhk9`gGa7bMh6c~e)eC74gN7}h#hf7Ph#e=dqb3cs10cu1S0Y0J0ed+g%g|g^geg`aL0dhmhog:hrhthX8{hF7$eJhJdh7ihMhc3LeJcpe@eVf10_0z0e0wf=3W9r9t9v9xhofa9P10c2feg8dGiwgC51fgc-fXgmh83k7uh$h*3/h)6@ariieUiCefe8g8c:c=ete5b|04b~iFf8izixir04iEiBc0gji6adhZhG7GiO6@frgRifi|h,ijiWf^c7iY3Vi!iqd|105vgJi=gL7Qi}7:fSj0hKfVfwh-ikdCd,i$dFgdgfi.c^i.jc04jei=gi04c`j8e0100Ti#eTb`jB5JjEex10dMjug8h/04cu1*cH2Hd|in98bMh 220;bei^fKi8iMf#j:gv7hf)jmicf-gYfxjvj6iqjajIeek1k4eh100tjbd}5;j/jh7;jj73ckj{eFkgj3iVgcdCk2b@kbjdkej;7~kh7hgQb$hN73gUjpj43Vds0X1U1*iqdG0(kr04d?eck72 iXjVj9100Aktkdi+9EjTezhEi`7$haj@kC7hhekkc!8b9ekFeMd)jskMjwg6jRiG100ci.kNkPkakT1.jPjy10jHkWjJ04kZl8b-i:h}hCc}ffl2l4d*lbjGk2dB2.ipli01eqdDlyjzk$d;kYjAkcjQlng89F0nk!lJdbdKlcjUjN9gjXjZbM0J0P18aM0Fj*9tcH0^3n9njflKk.iL0A8lky3.5siR8LhPk_e?ko5(b.j7le4,k3m3f0k6m6epk9lOkvk+aqdSibeF8uied3mjknj j5kOlym5lUe^kqmrmblylal.lQi7mel=ial:ml26l`8tihk_eNd*jtmtk0i;l/jFl3lEi/mql0i,ltmw04jLk}f^lslT3Sl 4,lWg(aN0e0Fbaj)gHj+l+2CmdgneC8Ml@aqiQk=gOn1mnjqj50Fm2mQiZkslydGnbl6mcmAfjhYm hG8Wn2l=i kBifnqknmN04ePfBngm1gl0h8_1u2?1j8%1j0w8)nL2U2Pc61*8$8/9U0+0-0/0)04.