Un mélange parfait (mélange Faro) est un mélange parfaitement réussi dans le sens où l’on partage le paquet initial en deux paquets égaux et que le mélange est parfaitement alterné, une carte d’un paquet succédant à une carte de l’autre dans le paquet final. Par exemple, le mélange Faro de [0,1,2,3,4,5]
sera :
[0,3,1,4,2,5]
En effet, on coupe le paquet en 2, soit [0,1,2]
et [3,4,5]
puis on prend alternativement un élément dans le premier paquet puis dans le second, etc.
>> faro(range(6))
[0, 3, 1, 4, 2, 5]
def faro(l): if len(l)%2==1: return "Impair" s=[] milieu = len(l)//2 for i,v in enumerate(l[:milieu]): s.append(v) s.append(l[milieu+i]) return s def cycle(l): suiv = faro(l) n = 1 while list(suiv)!=list(l): suiv = faro(suiv) n +=1 return n