L'obiettivo di una Rosetta Stone Challenge è scrivere soluzioni in quante più lingue possibili. Mostra il tuo multilinguismo di programmazione!
La sfida
La tua sfida è quella di implementare un programma che inserirà un elenco di numeri e produca un diagramma a scatole dei dati, nel maggior numero di linguaggi di programmazione possibile . Il diagramma a scatole mostrerà i quartili e gli outlier nei dati e avrà anche una scala. Puoi usare qualsiasi tipo di funzione di libreria standard nella tua lingua, poiché questa è principalmente una vetrina linguistica.
Che cos'è un "diagramma a scatole"?
Un diagramma a scatole è un modo per rappresentare graficamente i dati. Un diagramma a scatole ha alcune caratteristiche essenziali. La prima caratteristica è una casella, con entrambi i lati situati nel primo e terzo quartile dei dati. C'è una linea al centro del diagramma a riquadri che indica la mediana. Alle due estremità del diagramma della scatola, ci sono "baffi" che aiutano a mostrare la varianza dei dati. Il baffo si estende dalla casella al minimo e al massimo dei punti nel set di dati, esclusi i valori anomali. I valori anomali vengono tracciati come punti individuali.
Innanzitutto, prendi la mediana dei dati. Quindi, prendi tutti i punti dati che sono strettamente inferiori alla mediana e calcola la mediana di questo set per diventare il primo quartile (Q1). Prendi tutti i punti di dati che sono strettamente maggiori della mediana e calcola la mediana di questo set per diventare il terzo quartile (Q3). Trova il valore di R = 1.5*(Q3 - Q1)
. Tutti i numeri in meno Q1 - R
sono valori anomali. Tutti i numeri maggiori di Q3 + R
sono valori anomali. Prendi l'insieme di tutti i punti di dati che non sono anomali e il minimo e il massimo di questo insieme determinano le estremità dei due baffi.
Ingresso
L'input inizierà con n=
seguito da un numero. Ci saranno quindi n
numeri, uno per riga. Tutti i numeri saranno numeri interi compresi tra 0 e 63, inclusi.
n=8
29
1
22
18
12
16
16
22
Produzione
L'output sarà una rappresentazione del diagramma a riquadri. Un modo possibile per disegnare la trama è renderlo in ASCII. È possibile eseguire il rendering del diagramma a riquadri in molti modi diversi da ASCII, ma il requisito principale è che sia disegnato in modo sufficientemente grande da consentire di stabilire con esattezza le posizioni delle caratteristiche importanti. La trama della scatola dovrebbe avere una scala, composta da circa 5-10 numeri equidistanti. Ecco un esempio di trama dei dati sopra:
+--+----+
| | |
X +-+ | +------+
| | |
+--+----+
0 0 1 1 2 2 3
0 5 0 5 0 5 0
Il criterio vincente dell'obiettivo
Per quanto riguarda un criterio vincente oggettivo, eccolo qui: ogni lingua è una competizione separata su chi può scrivere la voce più breve, ma il vincitore generale sarebbe la persona che vince la maggior parte di queste sotto-competizioni. Ciò significa che una persona che risponde in molte lingue non comuni può ottenere un vantaggio. Il code-golf è principalmente un tiebreak per quando c'è più di una soluzione in una lingua: la persona con il programma più corto ottiene credito per quella lingua.
Regole, restrizioni e note
Il tuo programma può essere scritto in qualsiasi lingua esistente prima dell'11 aprile 2013. Dovrò anche fare affidamento sulla comunità per convalidare alcune risposte scritte in alcune delle lingue più insolite / esoteriche, poiché è improbabile che io sia in grado di testare loro.
Classifica attuale
Questa sezione verrà periodicamente aggiornata per mostrare il numero di lingue e chi guida in ciascuna di esse.
- Julia (604) - plannapus
- Mathematica (71) - chyanog
- Python2.X (85) - Abhijit
- R (34) - plannapus
Classifiche utente corrente
- plannapus - 2
- Abhijit - 1
- chyanog - 1