## Exercice 1

A=list(range(10,21))

B=list(range(-15,16,2))

C=list(range(0,200,7))

D=list(range(14,0,-1))

E=25*[3]

F=[]
for n in range(21):
    for k in range(n):
        F.append(n)

print(A,B,C,D,E,F,sep='\n')

print(len(F)) # 210

print(F[150]) # 17


## Exercice 5

L=[k for k in range(1,501)]
print(L)

S=0
for k in L:
    S+=k
moyenne = S/len(L)
print(moyenne)

V=0
for k in L:
    V+=(k-moyenne)**2
variance = V/len(L)
print(variance)


## Exercice 6

from random import random

A=[random() for i in range(1000)]
print(A)

max=A[0]
pos=0
for i in range(len(A)):  #algorithme à connaître absolument
    if A[i]>max:
        max=A[i]
        pos=i
print(max,pos)
print(A[pos])


## Exercice 7

S="esope reste ici et se repose"

n=len(S)
b=True
for i in range(n):
    if S[i]!=S[n-i-1]:
        b=False
print(b)

S=S.replace(" ","")   #on supprime les espaces
print(S)
n=len(S)
b=True
for i in range(n):
    if S[i]!=S[n-i-1]:
        b=False
print(b)


## Exercice 8

S="1"
N=10

print(S)
for n in range(N):
    T=""
    s=S[0]
    c=1    #compteur de chiffres identiques
    for i in range(1,len(S)):
        if S[i]==s:    #cas où le chiffre suivant est le même
            c+=1
        else:
            T=T+str(c)+s
            s=S[i]
            c=1
    T=T+str(c)+s    #on traite le dernier chiffre
    print(T)
    S=T

# S="1"
# S="23"
S="31416"
N=40
for n in range(N):
    T=""
    s=S[0]
    c=1
    for i in range(1,len(S)):
        if S[i]==s:
            c+=1
        else:
            T=T+str(c)+s
            s=S[i]
            c=1
    T=T+str(c)+s
    print(len(T)/len(S))
    S=T


## Exercice 9

n=10**6
C=[0,1,2,3,4,5,6,7,8,9]
S=""

for i in range(len(C)):
    f=1         #calcul de (len(C)-1)!
    for j in range(1,len(C)):
        f*=j
    k=n//f      #indication de l'énoncé
    S+=str(C.pop(k))
    n-=k*f      #n devient le rang de la permutation recherchée parmi celles commençant par k
print(S)