# soltion 1
return (posCase-1)%n
# soltion 2
if posCase==0:return n-1
else:return posCase-1
#Q7
def NobreVoisinVivants(L, posCase):
#indice du voisin droite de la case numéro posCase
voisin_droite=voisinDroite(L,posCase)
#indice du voisin gauche de la case numéro posCase
voisin_gauche=voisinGauche(L,posCase)
#indice du voisin droite de la case numéro voisin_droite
voisin_voisin_droite=voisinDroite(L,voisin_droite)
#indice du voisin gauche de la case numéro voisin_gauche
voisin_voisin_gauche=voisinGauche(L,voisin_gauche)
#calculer la somme des cases vivantes dans ces indices
return L[voisin_droite]+L[voisin_gauche]+L[voisin_voisin_droite]+L[voisin_voisin_gauche]
#Q8
def Evolution(L0,n):
m=len(L0)#O(1)
for k in range(n):
for i in range(m):
#calculer le nombre de cases voisines vivantes de la case i à l'itération k
nbr_voisines_vivantes=NobreVoisinVivants(L0, i)#O(1)
#Si la case i possède exactement 2 voisines vivantes
if nbr_voisines_vivantes==2:
L0[i]=1#elle sera vivante
#Sinon si la case i possède moins d’une ou plus de 2 voisines vivantes à l’itération k
elif nbr_voisines_vivantes<1 or nbr_voisines_vivantes>2: