Basato su stringhe spesse e morbide .
Gli squiggles /\_/\/\__/\/\/\/\_/\_/\sono divertenti da fare su una tastiera quando sei davvero annoiato. Ma non tutti gli squiggles sono creati uguali. Alcuni squiggles sono lisci, come \___/, e alcuni sono pesanti, come /\/\/\/\. Altri sono semplicemente distrutti, come////_\\\
All'interno di ogni scricchiolio di Npersonaggi, ci sono N-1giunzioni a squiggle. Ogni giunzione squiggle è classificata in uno di tre tipi:
Smooth (angolo> "90 gradi"):
\_ __ _/Grosso (angolo = "90 gradi")
/\ \/Rotto (tutto ciò che non si collega)
// \\ /_ _\
Definiamo la levigatezza sia la percentuale di giunzioni che sono lisce, con chunkiness e brokenness definite in modo simile. Ogni valore è compreso tra 0e 1. La somma di levigatezza, rigidità e fragilità di uno squiggle è sempre uguale a 1.
Ad esempio, lo squiggle /\/\\_//\_ha 3 giunzioni lisce, 4 giunzioni grosse e 2 giunzioni rotte. È quindi 0.3333liscio, 0.4444grosso e 0.2222rotto.
Le stringhe vuote e le stringhe con un solo carattere hanno valori non definiti, tutti gli input saranno lunghi almeno 2 caratteri.
Sfida
Scrivi un programma che assorbe una lunghezza irregolare e produca due valori di levigatezza, rigidezza e rottura.
- È possibile scrivere un programma o una funzione, con input tramite STDIN, riga di comando o come argomento stringa.
- È possibile supporre che l'input sia almeno di lunghezza> = 2 e sia composto solo da caratteri
/\_con una nuova riga finale facoltativa. - Stampa (o ritorna se una funzione) i due galleggianti con una precisione di almeno 4 decimali, arrotondati o troncati. Se il valore vero è
2/3, i valori accettabili includono qualsiasi valore tra0.6666e0.6667, anche cose del genere0.666637104. Se il valore esatto è1/3, qualsiasi risposta contenente0.3333è valida. È possibile lasciare gli zeri finali o lo zero iniziale se il valore è inferiore a uno. - Emetti qualsiasi coppia dei tre valori come preferisci, assicurati di indicare quali due e in quale ordine.
Vince il codice più breve in byte.
Esempi
/\/\\/\//\\→ Smoothness 0, Chunkiness 0.7, Brokenness0.3
_/\\_/\\/__/\\\//_→ Smoothness 0.29411764705, Chunkiness 0.29411764705, Brokenness0.41176470588
//\\__/_\/→ Smoothness 0.3333333, Chunkiness 0.2222222, Brokenness0.4444444
Domanda bonus: quale preferisci, squiggles lisci o pesanti o rotti?