introduction
Je veux construire une échelle. Pour cela, j'ai récupéré de la casse deux longues planches avec des trous, et je veux placer les marches dans ces trous. Cependant, les trous ne sont pas placés uniformément, donc les étapes seront un peu bancales, et j'ai du mal à estimer la quantité de tige dont j'ai besoin. Votre travail consiste à faire les calculs pour moi.
Contribution
Votre entrée est des vecteurs à deux bits, donnés sous forme de tableaux d'entiers, qui représentent les deux cartes. A 0représente un segment d'un aud ( unité arbitraire de distance ) sans trou, et a 1représente un segment d'un aud avec un seul trou. Les tableaux peuvent être de longueurs différentes et contenir un nombre différent de 1s, mais ils ne seront pas vides.
Je vais construire mon échelle comme suit. Tout d'abord, je place les deux planches exactement à une distance l'une de l'autre et j'aligne leurs extrémités gauches. Pour chaque index i, je mesure la distance entre le itrou de la première planche avec le itrou de la deuxième planche , je coupe un morceau de tige et je le fixe entre les deux trous. Je m'arrête une fois que je n'ai plus de trous dans l'une des planches.
Sortie
Votre sortie est la quantité totale de tige dont j'ai besoin pour les étapes, mesurée en auds. La sortie doit être correcte avec au moins six chiffres significatifs.
Exemple
Considérez les entrées [0,1,1,0,1,1,1,1,0,0]et [1,0,0,1,1,1,0,0,1]. L'échelle résultante ressemble à ceci:

La longueur totale de la tige dans cette échelle est 7.06449510224598auds.
Règles
Vous pouvez écrire soit une fonction soit un programme complet. Le nombre d'octets le plus bas l'emporte et les failles standard sont interdites.
Cas de test
[0] [0] -> 0.0
[0] [1,0] -> 0.0
[1,0,0] [1,1,1,1,1] -> 1.0
[0,1,0,1] [1,0,0,1] -> 2.414213562373095
[0,1,1,0,1,1,1,1,0,0] [1,0,0,1,1,1,0,0,1] -> 7.06449510224598
[1,1,1,1,1] [0,0,1,1,0,1,0,0,1] -> 12.733433128760744
[0,0,0,1,0,1,1,0,0,0,1,1,1,0,0,1,0,1,1,0,0,0,1,0] [0,0,1,1,0,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1] -> 20.38177416534678