7. SOLUTION /1

7.1. Solution

#-*- coding: utf-8 -*-

n = input("donner le rang n: ")

x = 1.0 # terme rang 0

somme = x

for i in range(n):

    y = - x + x/2

    x = y

    somme = somme + x # la somme est faite ici directement
                    # pendant le calcul du terme de rang n

# ligne utilisée pour faire des tests complémentaires:
# print "terme de rang", n, "=", x

print "moyenne des termes de rang 0 à", n, "=", somme/(n+1)

7.2. Solution

#-*- coding: utf-8 -*-

import random

import math

nbPoints = input("donner le nombre de points à tirer : ")
dansDisque = 0

for i in range(nbPoints):

  x = random.uniform(-1,1)

  y = random.uniform(-1,1)

  if math.sqrt(x**2+y**2) <= 1:

    dansDisque = dansDisque+1

print 'approximation de PI:', 4.0*dansDisque/nbPoints

7.3. Solution

#-*- coding: utf-8 -*-

n = input("donner le rang n : ")

x = 1 # terme rang 0

print "terme de rang 0 =", x

for i in range(1,n+1):

    if x % 2 == 0:

        y  = x - 3

    else:

        y = -3*x + 1

    x = y

    print "terme de rang", i, "=", x