from time import *

N=10**7
debut = perf_counter()
for i in range(N):
        165547+121326

fin = perf_counter()
Tplus=(fin -debut)/N    


x=0
y=0
debut = perf_counter()
for i in range(N):
    if x == 1:
        y = y+1
    else:
        y =y- 1

fin = perf_counter()
Tif = (fin - debut)/N

print("Nombre d'itérations :", N)
print("Temps total :", Tif, "secondes")
print("Temps moyen pour l'instruction if-else  (en nanoseconde)  :", Tif*1e9, "ns")
print("Temps moyen pour une addition d'entiers (en nanoseconde)  :", Tplus*1e9, "ns")


def F(n): #Fibo récursif
    if n<2:
        return n
    else:
        return F(n-1)+F(n-2)

dicoFibo={0:0,1:1}

def FF(n): #Fibo récursif "intelligent"
    if n not in dicoFibo:
        dicoFibo[n]=FF(n-1)+FF(n-2)
    return dicoFibo[n]

debut = perf_counter()
F(35)
fin = perf_counter()
dt35=fin-debut

debut = perf_counter()
F(36)
fin = perf_counter() 
dt36=fin-debut


temps={35:dt35,36:dt36}

def T(n): #Temps Fibo récursif "intelligent"
    if n not in temps:
        temps[n]=T(n-1)+T(n-2)+Tplus+Tif
    return temps[n]


debut = perf_counter()
F(41)
fin = perf_counter() 
tt=fin-debut

