ajout sequence recursivité
This commit is contained in:
41
Recursivité/sources/lumiere.py
Normal file
41
Recursivité/sources/lumiere.py
Normal file
@@ -0,0 +1,41 @@
|
||||
from random import randint
|
||||
|
||||
nb_interrupteurs = 10
|
||||
etats_interrupteurs = [_%2==1 for _ in range(nb_interrupteurs)]
|
||||
etats_interrupteurs = [False for _ in range(nb_interrupteurs)]
|
||||
etats_interrupteurs = [randint(0,1)==0 for _ in range(nb_interrupteurs)]
|
||||
|
||||
commutations = []
|
||||
|
||||
print(etats_interrupteurs)
|
||||
|
||||
def inverse_interrupteur(n: int):
|
||||
global etats_interrupteurs
|
||||
global commutations
|
||||
#print("On inverse l'interrupteur", n)
|
||||
commutations.append(n)
|
||||
etats_interrupteurs[n-1] = not etats_interrupteurs[n-1]
|
||||
|
||||
def islight() -> bool:
|
||||
global etats_interrupteurs
|
||||
result = True
|
||||
for etat_interrupteur in etats_interrupteurs:
|
||||
if not etat_interrupteur:
|
||||
result = False
|
||||
break
|
||||
return result
|
||||
|
||||
def cherche_commutations(n):
|
||||
#print("commute", n)
|
||||
if n == 1 and not islight():
|
||||
inverse_interrupteur(n)
|
||||
elif n > 1 and not islight():
|
||||
cherche_commutations(n-1)
|
||||
if not islight():
|
||||
inverse_interrupteur(n)
|
||||
if not islight():
|
||||
cherche_commutations(n-1)
|
||||
|
||||
cherche_commutations(nb_interrupteurs)
|
||||
print(etats_interrupteurs)
|
||||
print(len(commutations))
|
||||
Reference in New Issue
Block a user