File: ecrit_2008_rattrapage.tex, line 33
def u (n) : if n <= 2 : return 1 else : return u (n-1) + u (n-2) + u (n-3)
File: ecrit_2008_rattrapage.tex, line 46
def u_non_recursif (n) : if n <= 2 : return 1 u0 = 1 u1 = 1 u2 = 1 i = 3 while i <= n : u = u0 + u1 + u2 u0 = u1 u1 = u2 u2 = u i += 1 return u
File: ecrit_2008_rattrapage.tex, line 72
def fonction (n) : return n + (n % 2) print fonction (10) print fonction (11)
File: ecrit_2008_rattrapage.tex, line 91
10 12
File: ecrit_2008_rattrapage.tex, line 101
def fonction3 (n) : k = 0 while k < n : k += 3 return k
File: ecrit_2008_rattrapage.tex, line 112
def fonction3 (n) : if n % 3 == 0 : return n elif n % 3 == 1 : return n + 2 else : return n + 1
File: ecrit_2008_rattrapage.tex, line 123
def fonction3 (n) : if n % 3 == 0 : return n else : return n + 3 - (n % 3)
File: ecrit_2008_rattrapage.tex, line 140
def division (n) : return n / 2 print division (1) print division (0.9)
File: ecrit_2008_rattrapage.tex, line 158
0 0.45
File: ecrit_2008_rattrapage.tex, line 197
def compare_liste (p,q) : i = 0 while i < len (p) and i < len (q) : if p [i] < q [i] : return -1 # on peut décider elif p [i] > q [i] : return 1 # on peut décider i += 1 # on ne peut pas décider # fin de la boucle, il faut décider à partir des longueurs des listes if len (p) < len (q) : return -1 elif len (p) > len (q) : return 1 else : return 0
File: ecrit_2008_rattrapage.tex, line 214
def compare_liste (p,q) : i = 0 while i < len (p) and i < len (q) : c = cmp (p [i], q [i]) if c != 0 : return c # on peut décider i += 1 # on ne peut pas décider # fin de la boucle, il faut décider à partir des longueurs des listes return cmp (len (p), len (q))
File: ecrit_2008_rattrapage.tex, line 238
l = [0,1,2,3,4,5,6,7,8,9] i = 1 while i < len (l) : print l [i], l [i+1] i += 2
File: ecrit_2008_rattrapage.tex, line 250
1 2 3 4 5 6 7 8 9 Traceback (most recent call last): File "examen2008_rattrapage.py", line 43, in <module> print l [i], l [i+1] IndexError: list index out of range
File: ecrit_2008_rattrapage.tex, line 285
def suite_geometrique_1 (r) : x = 1.0 y = 0.0 n = 0 while x > 0 : y += x x *= r n += 1 return y,n print suite_geometrique_1 (0.5) #affiche (2.0, 1075)
File: ecrit_2008_rattrapage.tex, line 303
def suite_geometrique_2 (r) : x = 1.0 y = 0.0 n = 0 yold = y + 1 while abs (yold - y) > 0 : yold = y y += x x *= r n += 1 return y,n print suite_geometrique_2 (0.5) #affiche (2.0, 55)
File: ecrit_2008_rattrapage.tex, line 348
def hyper_cube_liste (n, m = [0,0]) : if n > 1 : m [0] = [0,0] m [1] = [0,0] m [0] = hyper_cube_liste (n-1, m [0]) m [1] = hyper_cube_liste (n-1, m [1]) return m h = hyper_cube_liste (3) print h # affiche [[[0, 0], [0, 0]], [[0, 0], [0, 0]]]
File: ecrit_2008_rattrapage.tex, line 365
def hyper_cube_dico (n) : r = { } ind = [ 0 for i in range (0,n) ] while ind [0] <= 1 : cle = tuple ( ind ) # conversion d'une liste en tuple r [cle] = 0 ind [ len (ind)-1] += 1 k = len (ind)-1 while ind [ k ] == 2 and k > 0 : ind [k] = 0 ind [k-1] += 1 k -= 1 return r h = hyper_cube_dico (3) print h # affiche {(0, 1, 1): 0, (1, 1, 0): 0, (1, 0, 0): 0, (0, 0, 1): 0, # (1, 0, 1): 0, (0, 0, 0): 0, (0, 1, 0): 0, (1, 1, 1): 0}
File: ecrit_2008_rattrapage.tex, line 389
def occurrence (l,n) : d = ....... # choix d'un hyper_cube (n) ..... return d suite = [ 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1 ] h = occurrence (suite, 3) print h
File: ecrit_2008_rattrapage.tex, line 407
def occurrence (l,n) : d = hyper_cube_dico (n) for i in range (0, len (l)-n) : cle = tuple (l [i:i+n]) d [cle] += 1 return d
File: ecrit_2008_rattrapage.tex, line 421
def occurrence (l,n) : d = { } for i in range (0, len (l)-n) : cle = tuple (l [i:i+n]) if cle not in d : d [cle] = 0 d [cle] += 1 return d
File: ecrit_2008_rattrapage.tex, line 436
def occurrence (l,n) : d = hyper_cube_liste (n, [0,0]) # * remarque voir plus bas for i in range (0, len (l)-n) : cle = l [i:i+n] t = d # for k in range (0,n-1) : # point clé de la fonction : t = t [ cle [k] ] # accès à un élément t [cle [ n-1] ] += 1 return d
File: ecrit_2008_rattrapage.tex, line 454
Traceback (most recent call last): File "examen2008_rattrapage.py", line 166, in <module> h = occurrence (suite, n) File "examen2008_rattrapage.py", line 160, in occurrence t [cle [ n-1] ] += 1 TypeError: 'int' object is not iterable
File: ecrit_2008_rattrapage.tex, line 468
def fonction (l = [0,0]) : l [0] += 1 return l print fonction () # affiche [1,0] : résultat attendu print fonction () # affiche [2,0] : résultat surprenant print fonction ( [0,0]) # affiche [1,0] : résultat attendu
File: ecrit_2008_rattrapage.tex, line 483
import copy def fonction (l = [0,0]) : l = copy.copy (l) l [0] += 1 return l
File: ecrit_2008_rattrapage.tex, line 495
def hyper_cube_liste (n, m = [0,0]) : m = copy.copy (m) if n > 1 : m [0] = [0,0] m [1] = [0,0] m [0] = hyper_cube_liste (n-1, m [0]) m [1] = hyper_cube_liste (n-1, m [1]) return m