Na podstawie strun grubych vs. gładkich .
Squiggles /\_/\/\__/\/\/\/\_/\_/\to świetna zabawa na klawiaturze, gdy naprawdę się nudzisz. Ale nie wszystkie squiggles są sobie równe. Niektóre zawijasy są gładkie, \___/a niektóre grube, jak /\/\/\/\. Inni są po prostu zupełnie złamani////_\\\
Wewnątrz każdego poruszenia Npostaci znajdują się N-1skrzyżowania. Każde skrzyżowanie skrętne jest sklasyfikowane w jednym z trzech typów:
Gładki (kąt> „90 stopni”):
\_ __ _/Grube (kąt = „90 stopni”)
/\ \/Zepsuty (wszystko, co się nie łączy)
// \\ /_ _\
Zdefiniujmy gładkość jako proporcję skrzyżowań, które są gładkie, z podobnie zdefiniowaną masą i łamliwością . Każda wartość mieści się w zakresie od 0i 1. Suma gładkości, masywności i łamliwości squiggle jest zawsze równa 1.
Na przykład squiggle /\/\\_//\_ma 3 gładkie skrzyżowania, 4 masywne skrzyżowania i 2 złamane skrzyżowania. Jest więc 0.3333gładki, 0.4444gruby i 0.2222łamany.
Puste łańcuchy i łańcuchy zawierające tylko jeden znak mają niezdefiniowane wartości, wszystkie dane wejściowe będą miały co najmniej 2 znaki.
Wyzwanie
Napisz program, który pobiera drążek o dowolnej długości i generuje dowolne dwie wartości jego gładkości, masywności i łamliwości.
- Możesz napisać program lub funkcję, z wejściem przez STDIN, wiersz poleceń lub jako argument ciągu.
- Możesz założyć, że dane wejściowe mają co najmniej długość> = 2 i składają się tylko ze znaków
/\_z opcjonalnym końcowym znakiem nowej linii. - Wydrukuj (lub zwróć, jeśli funkcja), dwa elementy pływające z dokładnością co najmniej 4 miejsc po przecinku, zaokrąglone lub obcięte. Jeśli prawdziwą wartością jest
2/3, dopuszczalne wartości obejmują dowolną wartość pomiędzy,0.6666a0.6667nawet rzeczy takie jak0.666637104. Jeśli dokładna wartość to1/3, każda zawierająca odpowiedź0.3333jest poprawna. Możesz pominąć końcowe zera lub wiodące zero, jeśli wartość jest mniejsza niż jeden. - Wypisuj dowolną parę trzech wartości według własnego uznania, pamiętaj tylko, aby podać dwie i w jakiej kolejności.
Najkrótszy kod w bajtach wygrywa.
Przykłady
/\/\\/\//\\→ Gładkość 0, masywność 0.7, łamliwość0.3
_/\\_/\\/__/\\\//_→ Gładkość 0.29411764705, masywność 0.29411764705, łamliwość0.41176470588
//\\__/_\/→ Gładkość 0.3333333, masywność 0.2222222, łamliwość0.4444444
Pytanie dodatkowe: Które wolisz, gładkie, masywne lub połamane squiggles?