Expliquer

Consigne: utilisation de l'ordinateur uniquement à postériori, pour vérifier les résultats.

1) On définit une fonction f1(n), avec n ∈ N, par:

def f1(n):
    if (n % 4) == 1:
        return 2 * n
    if (n % 3) == 2:
        return n + 1
    return n // 2    

Calculer (avec de brèves explications) f1(n) pour n ∈ {17, 18, 19, 20}.

2) On définit une fonction f2(n), avec n ∈ N, par:

def f2(n):
    return ((n % 9) == 0) or ((n % 3) != 0)

a) Calculer (avec de brèves explications) f2(n) pour n ∈ {1,...,10}.
b) Quel est l'ensemble F des entiers naturels n pour lesquels f2(n) = False ?

3) On définit une fonction f3(a, b, c), avec a, b, c ∈ N, par:

def f3(a, b, c):
    if a < b:
        if b < c:
            return c
         return b
    if a < c:
         return c
   return a      

a) Calculer f3(5,4,6) , f3(6,7,6) et f3(5,4,3)
b) Que calcule f3(a,b,c) ?
c) Combien y-a-t-il au maximum de comparaisons lors de l'exécution de f(a, b, c) ?

4) On définit une fonction f4(n), avec n ∈ N, par:

def f4(n):
    s = 1
    for i in range(n):
        s = s + 1 / s
    return s    

a) Calculer (avec de brèves explications) f4(2) et f4(5).
b) Que calcule f4(n) ?

5) On définit une fonction f5(n), avec n ∈ N, par:

def f5(n):
    s, p = 0, 1
    for i in range(1, n + 1):
        s = s + p * i * i
        p = -p
    return s    

a) Calculer (avec de brèves explications) f5(5).
b) Ecrire (mathématiquement) avec le symbole ∑ la valeur de f5(n)

6) On définit une fonction f6(n), avec n ∈ N, par:

def f6(n):
    s = 0
    for i in range(1, n + 1):
        if (i % 2) == 1:
            s = s + i * i
        else:
            s = s - i * i
    return s    

Expliquer pourquoi cette fonction f6() renvoie le même résultat que la fonction précédente f5().

7) On définit une fonction f7(n), avec n ∈ N, par:

def f7(n):
    s = 0
    for i in range(1, n + 1):
        if (i % 3) == 0:
            s = s - 1
        else:
            s = s + 1
    return s    

a) Calculer (avec de brèves explications) f7(10).
b) Ecrire (mathématiquement) avec la fonction partie entière [ ] la valeur de f7(n).

8) On définit une fonction f8(n), avec n ∈ N, par:

def f8(n):
    u, v = 3, 2
    for i in range(n):
        w = u
        u = u + v
        v = w - v
    return (u, v)    

a) Calculer (avec de brèves explications) f8(2), f8(6)
b) Démontrer que pour tout entier n, f8(n+2) = 2 f8(n)

9) On définit une fonction f9(n), avec n ∈ N, par:

def f9(n):
    s = 0
    for i in range(n):
        for j in range(n):
            if j < i:
                s = s + 1
    return s

a) Calculer (avec de brèves explications) f9(10) .
b) Quelle est la valeur de f9(n) en fonction de n ?

10) On définit une fonction f10(n), avec n ∈ N, par:

def f10(n):
    s = 0
    for i in range(n + 1):
        for j in range(n + 1):
            if i * i + j * j <= n * n:
                s = s + 1
    return s

a) Calculer (avec de brèves explications) f10(10) .
b) Interpréter géométriquement la valeur de la fonction f10(n).

11) On définit une fonction f11(x), avec x ∈ R , par:

def f11(x):
    s = 0
    while s <= x:
        s = s + 1
    return s - 1

Quelle fonction usuelle se cache derrière cette fonction f11() ?

12) On définit une fonction f12(n, p), avec n, p ∈ N * , par:

def f12(n, p):
    s, q = 0, p
    while q <= n:
        s = s + n // q
        q = p * q
    return s

Calculer (avec de brèves explications) f12(100, 2) et f12(100,3). Quelle somme calcule f(n, p) ?

13) On définit une fonction f13(x, n), avec x ∈ R et n ∈ N, par:

def f13(x, n):
    s, p = 0, 1
    for i in range(n + 1):
        while s + p <= x:
            s = s + p
        p = p / 10
    return s

a) Calculer (avec de brèves explications) f13(1/3, 4) et f13(3/11, 6). Qu'y a-t-il de bizarre quand on fait le calcul avec le PC ?
b) Que calcule (en théorie) f13(x, n) ?
c) Pourquoi n'est-ce pas tout à fait le cas en pratique ? Proposer une fonction f13_bis(x, n) correcte.

14) On définit une fonction f14(x), avec x ∈ R, par:

def f14(x):
    s, n = 1, 0
    while s <= x:
        s = s + 1 / s
        n = n + 1
    return n - 1    

a) Calculer (avec de brèves explications) f14(3) et f14(5).
b) Que calcule f14(n) ?
c) Quel résultat mathématique nous assure que la boucle “while” se terminera toujours ?

15) On définit une fonction f15()  par:

def f16(a, b, c):
    while a * a + b * b != c * c:
        if a < b < c:
            a = a + 1
        elif (a == b) and (b < c - 1):
            a, b = 1, b + 1
        else:
            a, b, c = 1, 1, c + 1
    return (a, b, c)    

a) Calculer (avec de brèves explications) f15(1, 1, 1).
b) Que calcule f15(a, b, c) ?

© 2014 - Eric Obermeyer      Powered by      Corrigé