# pythran export compute(uint8[], uint8[], uint8[]) def compute(s1, s2, sh): """ Calcule la séquence hypothétique sh et le nombre de mutations entre deux séquences s1 et s2 (encodées en puissances de 2). """ mutations = 0 # On itère sur les deux séquences en parallèle for i in range(len(s1)): intersection = s1[i] & s2[i] if intersection != 0: # Si l'intersection n'est pas vide, on la garde (coût 0) sh[i] = intersection else: # Si l'intersection est vide, on prend l'union (coût 1) sh[i] = s1[i] | s2[i] mutations += 1 return mutations