import numpy as np
import matplotlib.pyplot as plt

def f(n,x):
    y=1
    z=-1
    for i in range(0,n):
        y=y*x
        z=z+y
    return z

def courbe(n):
    Lx=np.linspace(-1,1,100)
    Ly=f(n,Lx)
    plt.plot(Lx,Ly)
    plt.grid()
    plt.show()
    return

# Par dichotomie
def dichotomie(n,a,b,eps):
    while b-a>eps:
        c=(a+b)/2
        if f(n,a)*f(n,c)<=0:
            b=c
        else:
            a=c
    return a,b

n=3
courbe(n)

n=20
eps=1e-5
for k in range(1,n+1):
    a,b=dichotomie(k,0,1,eps)
    print(k,'->',a)

