4 nouveaux défis
This commit is contained in:
16
Calcul des jours magiques.py
Normal file
16
Calcul des jours magiques.py
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import datetime
|
||||||
|
|
||||||
|
days = (len("lundi"), len("mardi"), len("mercredi"), len("jeudi"), len("vendredi"), len("samedi"), len("dimanche"))
|
||||||
|
d = datetime.datetime.strptime("01/01/2000", "%d/%m/%Y")
|
||||||
|
end = datetime.datetime.now()
|
||||||
|
|
||||||
|
ctr = 0
|
||||||
|
while True:
|
||||||
|
if (days[d.weekday()] + d.day)%10 == 0:
|
||||||
|
ctr += 1
|
||||||
|
|
||||||
|
d = d + datetime.timedelta(days=1)
|
||||||
|
if d > end:
|
||||||
|
break
|
||||||
|
|
||||||
|
print(d, ctr)
|
||||||
36
Le cours de potions.py
Normal file
36
Le cours de potions.py
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
fioles = [20, 20, 20, 0]
|
||||||
|
|
||||||
|
for i in range(12):
|
||||||
|
current = i%4
|
||||||
|
next1 = (i+1)%4
|
||||||
|
next2 = (i+2)%4
|
||||||
|
next3 = (i+3)%4
|
||||||
|
|
||||||
|
#1/3 de N versé dans N+1
|
||||||
|
tiers = fioles[current]/3
|
||||||
|
if fioles[next1]+tiers > 25:
|
||||||
|
versé = 25-fioles[next1]
|
||||||
|
else:
|
||||||
|
versé = tiers
|
||||||
|
fioles[next1] = fioles[next1] + versé
|
||||||
|
fioles[current] = fioles[current] - versé
|
||||||
|
|
||||||
|
#1/3 de N versé dans N+2
|
||||||
|
tiers = fioles[current]/3
|
||||||
|
if fioles[next2]+tiers > 25:
|
||||||
|
versé = 25-fioles[next2]
|
||||||
|
else:
|
||||||
|
versé = tiers
|
||||||
|
fioles[next2] = fioles[next2] + versé
|
||||||
|
fioles[current] = fioles[current] - versé
|
||||||
|
|
||||||
|
#1/3 de N versé dans N+3
|
||||||
|
tiers = fioles[current]/3
|
||||||
|
if fioles[next3]+tiers > 25:
|
||||||
|
versé = 25-fioles[next3]
|
||||||
|
else:
|
||||||
|
versé = tiers
|
||||||
|
fioles[next3] = fioles[next3] + versé
|
||||||
|
fioles[current] = fioles[current] - versé
|
||||||
|
|
||||||
|
print(i+1, fioles)
|
||||||
13
Les dragées surprises.py
Normal file
13
Les dragées surprises.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
dragees = ["A", "B", "E", "C", "G", "F", "M", "O", "H", "P", "S", "V"]
|
||||||
|
|
||||||
|
ctr = 0
|
||||||
|
while True:
|
||||||
|
ctr += 1
|
||||||
|
idx1 = (ctr * 5) % 12
|
||||||
|
idx0 = idx1-1 if idx1>0 else 11
|
||||||
|
dragees[idx0-1], dragees[idx1-1] = dragees[idx1-1], dragees[idx0-1]
|
||||||
|
if "A" in dragees[0:4] and "E" in dragees[0:4] and "G" in dragees[0:4] and "H" in dragees[0:4]:
|
||||||
|
break
|
||||||
|
|
||||||
|
print(ctr)
|
||||||
|
print(dragees)
|
||||||
21
Paramétrage du vif d'or.py
Normal file
21
Paramétrage du vif d'or.py
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
def next(x, y, z, n):
|
||||||
|
return y, z, (x+y+z)%n
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
x0, y0, z0 = 0, 0, 1
|
||||||
|
|
||||||
|
res = {}
|
||||||
|
for n in range(2, 201):
|
||||||
|
x, y, z = x0, y0, z0
|
||||||
|
ctr = 0
|
||||||
|
while True:
|
||||||
|
ctr += 1
|
||||||
|
x, y, z = next(x, y, z, n)
|
||||||
|
if x == x0 and y == y0 and z == z0:
|
||||||
|
print(n, ctr)
|
||||||
|
res[n] = ctr
|
||||||
|
break
|
||||||
|
|
||||||
|
for n in {k: v for k, v in sorted(res.items(), key=lambda item: item[1])}:
|
||||||
|
#print(n, res[n])
|
||||||
|
print(f"{n}, ", end = "")
|
||||||
Reference in New Issue
Block a user