################################################################################
################################################################################
#   FACT
################################################################################
################################################################################

import matplotlib.pyplot as plt, time, numpy.random as rd

################################################################################
#   FACTORIELLE ITERATIVE
################################################################################

def fact1(n):
    """Calcul itératif de n!"""
    pass


################################################################################
#   FACTORIELLE RECURSIVE
################################################################################

def prod(a, b):
    """Produit récursif des éléments de range(a, b)"""
    pass

def fact2(n):
    """Calcul récursif de n!"""
    pass


###############################################################################
#   COMPARAISON fact_iter VS fact
################################################################################

tn=range(1000,50000,1000)
tf1=[]
for n in tn:
    deb=time.time()
    fact1(n)
    fin=time.time()
    tf1.append(fin-deb)

tf2=[]
for n in tn:
    deb=time.time()
    fact2(n)
    fin=time.time()
    tf2.append(fin-deb)

# Affichage des performance : fact1 en bleu, fact2 en rouge
plt.plot(tn,tf1,'b',tn,tf2,'r')
plt.grid();plt.show()
