Considera una stringa di lunghezza N, come ad esempio Peanut Butter
N = 13. Nota che nella stringa sono presenti coppie N-1 di caratteri adiacenti. Perché Peanut Butter
, la prima delle 12 coppie è Pe
, la seconda è ea
, l'ultima è er
.
Quando le coppie sono per lo più caratteri diversi, la stringa ha una qualità grossa, ad es chUnky
.
Quando queste coppie hanno principalmente lo stesso carattere, la stringa ha una qualità uniforme, ad es sssmmsss
.
Definire il blocco di una stringa in modo che sia il rapporto tra il numero di coppie con due caratteri diversi e il numero totale di coppie (N-1).
Definisci la scorrevolezza di una stringa in modo che sia il rapporto tra il numero di coppie con due caratteri identici e il numero totale di coppie (N-1).
Ad esempio, Peanut Butter
ha solo una coppia con caratteri identici ( tt
), quindi la sua scorrevolezza è 1/12 o 0,0833 e la sua robustezza è 11/12 o 0,9167.
Le stringhe vuote e le stringhe con un solo carattere sono definite come morbide al 100% e grosse allo 0%.
Sfida
Scrivi un programma che accetta una stringa di lunghezza arbitraria e genera il suo valore di chunkiness o smoothness come valore in virgola mobile.
- Prendi l'input tramite stdin o la riga di comando, oppure potresti scrivere una funzione che accetta una stringa.
- Puoi supporre che la stringa di input contenga solo caratteri ASCII stampabili (e quindi sia una riga singola).
- Stampa il float su stdout su 4 o più cifre decimali oppure puoi scegliere di restituirlo se hai scritto una funzione. Le posizioni decimali che non trasmettono informazioni non sono necessarie, ad esempio
0
va bene invece di0.0000
. - Scegli il chunkiness o la scorrevolezza come preferisci. Assicurati di dire quale dei tuoi programmi genera.
Vince il codice più breve in byte.
Esempi
Peanut Butter
→ chunkiness: 0.91666666666
, Scorrevolezza: 0.08333333333
chUnky
→ chunkiness: 1.0
, Scorrevolezza: 0.0
sssmmsss
→ chunkiness: 0.28571428571
, Scorrevolezza: 0.71428571428
999
→ chunkiness: 0.0
, Scorrevolezza: 1.0
AA
→ chunkiness: 0.0
, Scorrevolezza: 1.0
Aa
→ chunkiness: 1.0
, Scorrevolezza: 0.0
!
→ chunkiness: 0.0
, Scorrevolezza: 1.0
[stringa vuota] → chunkiness: 0.0
, Uniformità:1.0