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

.1280137xh15-s3:/S n!é0e.]RT2;cfaoàw4)(+,_u[qb=èv8imFtP69pdrgylk050!0r0V0A0S0(0h0m0y0(0A0h0h0O010V0S0Z010406050h0K0T0T0A0#0%040l0B0(0K0}0B0n050k1416181a120Z04051q1j1t0k1q120!0S0Q0=0@0_0{0@0n0$0K0A0$0r0g0Z0%0V0d1h0m0d0S0$0d0(1V0d0V10050-0N0(0r1C0^0`011U1W1Y1W0V1(1*1$0V0#1r1Q0=1d0h0Z0A0n0{0w011,1E010z0/0r0n0A0T0r1$2123281.2b1*2e2g100a0m0W0#0B0Z0B0h0S1g0n0m0+1 0#0#0r0y2B1j2j0n1r0k1Q2O1{1}1|1%0!2l1F0S0n2d2y1$1z1B0?1-2Y2!0n0B2(1$0Z2H1r2M2O2^13222C2*292.0#170(1$0A1T2H0z0{030J0J0y2/0r1Y2-0B0g0e3j100m0e1j0A2_2|112{2k2~1.303234360r38013a3c3e3g2#3j0g26040m0w3p3r233t2M2X013y0A331r350d37393b3d0+3I2.3K0i3m0i3Q2L3s123U3w0{3X3Z053#3%3E3)3H2Z3J3k0E3m0E3=1k3@3u2}1D3x0B313Y3A3$3C3(3G3+443-3k0f3m0f4a2^3^2|3V3|4k403F3*3f4q3i3k0X3m0X4w4c3_4f3{4h3z3!3B3D4E433h3K0b3m0b4N3S4y3v4Q3W4S4j4U4l4W424p4Z3k0R3m0R4(2N4*4e2+4-4i3}3 4m414o4G4^0g0Y3m0Y4}3T4z3`524T3~4V4n4F3,4I3j0q100e0q5f4 4A4.545m575o4H3K0e0e5t3o0k3q3?4)4d5y534C564X4@453j3M0e3P5K3R4~5O5i4B4:4D4?595V0e3/045/5w5%4,5)5l4;5n4Y5.475;495!5M5$4P515_554=585p5F4t5;4v624b5N652 5z5R695D5a0e4K5;4M6g4x5@666l5*5S5,6b3k0e4#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=0r2O2(2R0!1}2W5i4F2%1A1r8!2@3s631r4F8=2k0S0!0{3b2M5F3A8|8~8T5q5H0m2p0r948s961$627K010)100+0z8@6w290D3m9m9g0n0z100r0h0V0J0K0n0J4h0!2H9r7m0{0 040G9G840n101(9M8f9I100F0j8@12798`2C93018 2|7$928}9%959*982f9a9-9c9*2O5L9g9p3N0m9~9R3V0h0!1000a59Xa09$9(233.9+9b7gac9:2gae7#3k5:3=9ga23m9~0m0u2d0Q0B0S1+0v0#0K1+2z0m1(0m9w0V2D1+0(1h1I0r0K0#98aGaI3d0n0}2daI0V0B0K0;1*0ha79Z5Oa90J9046ad9?afa/ah9=8K6%5 an9H01ap9}9~aXax0#0;2E0e0m0C980I0m0U3Y0haC2Z1ha)2`3Ua,a.0g6d5la,9@4s2799aj7r5qbp9fa}a ar0ma500bj8?bl9,aa0n3K6rbqbK9.4Jbu9;bw7}bO5!bD9n3x101i9Z0mb!0{0B100O8@b)9s0N102oa05i9J9La*9s9P0A0Nb^4,9J0FbH3Sa+bQbn6FbPbV7P4#a@cc5acabYarb*010y75030ma%aGaVb30;0Qa#cq4hb50K0m220#3daPa(9Z9Ybk4zbm9)4_a:a_5q4`cfa;ak0g6S3QbZb}04cwcH2^b:a}b,04b.b(cl9J0L0tb/cJbIcLc8cN5bcPbRc|cTcQ3K6)3Qc@c6bJ94bn5uc}bs5rbTaicUbx5F6_cYck9g9i040z4hb/cl9O040cdr9g0B9|2Zdwa}dt9Qb|a}9J9WcIa8c`ab6D75cbdg7}5Gdea^c~dS9_b0bDc)84dn0S9lc.c!dvd)c*10020(0V0xdB840T0S5td?9S01dy10dqd,9N10d+c(clc+020$d;d{4Ab$eb5id~04e0e5d*ee4,egdAe1d|dtc$c151dHc?dKd8c{5Ydba=5WdTcg5.3MdkdZdZcldn2H0VaPb%eja}0)0y10bd0:0rc52Nc7eydM3jam35breC5/eEdQ7Pe-dXeJ9 c!esdF84c+0set2 100A0Z0Z2d0!e~1.b`f63{e3f901c3ewe`9#dLbM6Da{e*bQdc0e47d0dVa{cje@eS10eNePel51eT10azaBeZ9!0mcMe%0ebpfmeF6%fLe.d16Dbz3qd5e!d79-d9bOfNe/6p4KfrfobX9`fw049kfc9|b)fg4A9u042.0T0N2H0J2x2Z0V0h0JaA0ZeO9Ff@b_10b{cKe2eh0#9EeYg9c29UdI6vf@fJfj3jcaf$fSgrfRdVcif-84f=ckgj51a bFfGe#fZezcXgtdVcSbvf%5.cXbA84bCarat0navaxcq1+f{f}1+2Eg0aVaJ0mg5g7g)1+9D2H0m0M0K0Sg.0r2=0pbfaV1+gHfYbL5Fd3gMfo5cf*e,d3gTd|gV9~9A0mg?g;0m0$0P2!b51+0y3$0B0T2yhugigngdfhe$gq6^eBcVhEhbhGdjhea1a3dYgGdJgofi7$dOh8eC74gwdchXe=dla}cn10cp1S0Q0p0#d%g!g_g=ggg@aH0mhihkg-hnhph3c_hC7$eHhVhG26hIdh3k7i9e3qcZf.1-0r0#0VfAe 04aH9z9Bhkfcf8gDikipisf79UffhAfIhSi9e)iAfO7h3/i77}7uibdYdsedep3Vc+c-eR9Nb=04b@iv9T9Kfcdtiuizga04c4hQizgp7$fliEgQ73fqgPgu7GiLidge0nc0iPefb-ij1.d^105vi,c^8{iB7QhFi8jciI7P7Si{h$d#10d%j3fagfghiq100Lfcj504j7i(gk04c=j0em100oiS3sd!d|jw5Jjzeu10gmjIclh(04cp1*cC2Hd^ig9800h^220;b7h jai1i9f#i;i_f)i^c~7%jjeJiNf`i iTd|iRjo3Wb$j}jRdx100Hk1jLj+hBgJe%7;jdiJcej?hZgyiMc!0Sk1k0jD51jwjy4chRj-7~kgjhgObUi=7hgSicjkd|dn0D1U1*k1dtkokr29e7d:d=kQb#f`kp100gk9d_5;js04jQ3S0mfWfHi.i9h7j:j@hakjhWhdkGj`dmjmd(j~ecjqg8jN29c:i#jmkY04k8kV0{kaiYfd10jCl0j104k!lck2l2hyj9d|l6lfkOk(lik5c*9|2.iilneneQly84ltl41.c+lmlJldk$jMlr3V9J0Ik#d`lf9J0tk*2NjJ3VjTjV000p0y18aI0nj$9xcC0^3nf?hzlRk/0g8lkz8C5sjgl j_e?fvi}k4k+e6j2lndti~l9lblj4,lel_d6i0kdgq8ul~8L97k^cVmoh#k|dCl8lDmamg66mymBkRk7lVk%j8mkj,mm3.i3k=dc8DhYeCmRmvl$5id$k lGeqd h?lqmKlsjtl704kPlNlgjBl9jGkNiOm/evlnl(g#aJ0#0nb3j#j%l?2Ckbk=bn8Mmp8tiHmsjen9mVi|m#j|l9jHm8c!mdmzlamHlQ5NkwmMali:e+mti@kCgu8Wm3eLfx0,fzmbk3gH0k8_1u2?1j8%1j0V8)nS2U2Pb 1*8$8/9Y0+0-0/0h04.