Aller au contenu

Ep 39

▶ TĂ©lĂ©charger le sujet en pdf.

EXERCICE 1⚓

On s’intĂ©resse Ă  la suite d’entiers dĂ©finie par :

  • les deux premiers termes sont Ă©gaux Ă  1,
  • ensuite, chaque terme est obtenu en faisant la somme des deux termes qui le prĂ©cĂšdent.

En mathématiques, on le formule ainsi :

\(U_1 = 1\), \(U_2 = 1\) et, pour tout entier naturel non nul \(n\), par \(U_{n+2} = U_{n+1} + U_n\).

Cette suite est connue sous le nom de suite de Fibonacci.

Écrire en Python une fonction fibonacci qui prend en paramĂštre un entier n supposĂ© strictement positif et qui renvoie le terme d’indice n de cette suite.

Exemples :

🐍 Script Python
    >>> fibonacci(1)
    1
    >>> fibonacci(2)
    1
    >>> fibonacci(25)
    75025
    >>> fibonacci(45)
    1134903170
RĂ©ponse

Complétez le code ci-dessous

###
# Mettre votre code icibksl-nlbksl-nl



Solution

###
def fibonacci(n):bksl-nl if n == 1 :bksl-nl return 1 bksl-nl elif n == 1 :bksl-nl return 1bksl-nl else :bksl-nl return fibonacci(n-1) + fibonacci(n-2)bksl-nlbksl-nl# oubksl-nlbksl-nldef fibonacci(n):bksl-nl a = 1bksl-nl b = 1bksl-nl for k in range(n-2):bksl-nl t = bbksl-nl b = a + bbksl-nl a = tbksl-nl return bbksl-nlbksl-nl# oubksl-nlbksl-nldef fibonacci(n):bksl-nl d = {}bksl-nl d[1] = 1bksl-nl d[2] = 1bksl-nl for k in range(3, n+1):bksl-nl d[k] = d[k-1] + d[k-2]bksl-nl return d[n]bksl-nlbksl-nl



EXERCICE 2⚓

On considĂšre la fonction pantheon prenant en paramĂštres eleves et notes deux tableaux de mĂȘme longueur, le premier contenant le nom des Ă©lĂšves et le second, des entiers positifs dĂ©signant leur note Ă  un contrĂŽle de sorte que eleves[i] a obtenu la note notes[i].

Cette fonction renvoie le couple constitué de la note maximale attribuée et des noms des élÚves ayant obtenu cette note regroupés dans un tableau.

Ainsi, l’instruction pantheon(['a', 'b', 'c', 'd'], [15, 18, 12, 18]) renvoie le couple (18, ['b', 'd']).

RĂ©ponse

Complétez le code ci-dessous

###
def pantheon(eleves, notes):bksl-nl notepy-undmaxi = 0bksl-nl meilleurspy-undeleves = ...bksl-nlbksl-nl for i in range(...) :bksl-nl if notes[i] == ... :bksl-nl meilleurspy-undeleves.append(...)bksl-nl elif notes[i] > notepy-undmaxi:bksl-nl notepy-undmaxi = ...bksl-nl meilleurspy-undeleves = [...]bksl-nlbksl-nl return (notepy-undmaxi,meilleurspy-undeleves)bksl-nlbksl-nl



Solution

###
def pantheon(eleves, notes):bksl-nl notepy-undmaxi = 0bksl-nl meilleurspy-undeleves = []bksl-nlbksl-nl for i in range(len(eleves)) :bksl-nl if notes[i] == notepy-undmaxi :bksl-nl meilleurspy-undeleves.append(eleves[i])bksl-nl elif notes[i] > notepy-undmaxi:bksl-nl notepy-undmaxi = notes[i]bksl-nl meilleurspy-undeleves = [eleves[i]]bksl-nlbksl-nl return (notepy-undmaxi, meilleurspy-undeleves)bksl-nlbksl-nl



Exemple :

🐍 Script Python
    >>> eleves_nsi = ['a','b','c','d','e','f','g','h','i','j']
    >>> notes_nsi = [30, 40, 80, 60, 58, 80, 75, 80, 60, 24]
    >>> pantheon(eleves_nsi, notes_nsi)
    (80, ['c', 'f', 'h'])
    >>> pantheon([],[])
    (0, [])