El objetivo de Rosetta Stone Challenge es escribir soluciones en tantos idiomas como sea posible. ¡Muestra tu programación multilingüismo!
El reto
Su desafío es implementar un programa que ingrese una lista de números y genere un diagrama de caja de los datos, en tantos lenguajes de programación como sea posible . El diagrama de caja mostrará los cuartiles y los valores atípicos en los datos, e incluso tendrá una escala. Se le permite usar cualquier tipo de función de biblioteca estándar que tenga su idioma, ya que esto es principalmente un escaparate de idiomas.
¿Qué es un "diagrama de caja"?
Un diagrama de caja es una forma de graficar datos. Un diagrama de caja tiene algunas características esenciales. La primera característica es un cuadro, con ambos lados ubicados en el primer y tercer cuartil de los datos. Hay una línea en el centro del diagrama de caja que da la mediana. En cada extremo del diagrama de caja, hay "bigotes" que ayudan a mostrar la varianza de los datos. El bigote se extiende desde el cuadro hasta los puntos mínimos y máximos del conjunto de datos, excluyendo los valores atípicos. Los valores atípicos se trazan como puntos individuales.
Primero, tome la mediana de los datos. Luego, tome todos los puntos de datos que son estrictamente menores que la mediana y calcule la mediana de este conjunto para convertirse en el primer cuartil (Q1). Tome todos los puntos de datos que son estrictamente mayores que la mediana y calcule la mediana de este conjunto para convertirse en el tercer cuartil (Q3). Encuentra el valor de R = 1.5*(Q3 - Q1)
. Cualquier número menos Q1 - R
esto son valores atípicos. Cualquier número mayor que Q3 + R
los valores atípicos. Tome el conjunto de todos los puntos de datos que no son atípicos, y el mínimo y el máximo de este conjunto determinan los extremos de los dos bigotes.
Entrada
La entrada comenzará con n=
seguido de un número. Luego habrá n
números, uno por línea. Todos los números serán enteros del 0 al 63, inclusive.
n=8
29
1
22
18
12
16
16
22
Salida
La salida será una representación del diagrama de caja. Una posible forma de dibujar el diagrama es renderizándolo en ASCII. Puede representar el diagrama de caja de muchas formas distintas de ASCII, pero el requisito principal es que se dibuje lo suficientemente grande como para que sea posible determinar las ubicaciones exactas de las características importantes. El diagrama de caja debe tener una escala, que consta de alrededor de 5-10 números igualmente espaciados. Aquí hay un gráfico de ejemplo de los datos anteriores:
+--+----+
| | |
X +-+ | +------+
| | |
+--+----+
0 0 1 1 2 2 3
0 5 0 5 0 5 0
El criterio objetivo ganador
En cuanto a un criterio ganador objetivo, aquí está: cada idioma es una competencia separada en cuanto a quién puede escribir la entrada más corta, pero el ganador general sería la persona que gana la mayoría de estas subcompeticiones. Esto significa que una persona que responde en muchos idiomas poco comunes puede obtener una ventaja. Code-golf es principalmente un factor decisivo para cuando hay más de una solución en un idioma: la persona con el programa más corto obtiene crédito por ese idioma.
Reglas, restricciones y notas
Su programa se puede escribir en cualquier idioma que existiera antes del 11 de abril de 2013. También tendré que confiar en la comunidad para validar algunas respuestas escritas en algunos de los idiomas más infrecuentes / esotéricos, ya que es improbable que pueda probar ellos.
Tabla de clasificación actual
Esta sección se actualizará periódicamente para mostrar la cantidad de idiomas y quién lidera cada uno.
- Julia (604) - plannapus
- Mathematica (71) - chyanog
- Python2.X (85) - Abhijit
- R (34) - plannapus
Ranking de usuarios actuales
- plannapus - 2
- Abhijit - 1
- chyanog - 1
fuente
Respuestas:
R: 34 caracteres
Por supuesto, siendo R un lenguaje usado para estadísticas, viene con una función
boxplot
para hacer esto (que necesita un contenedor aquí para acomodar el estilo de entrada):Uso: dado un archivo que
input1.txt
contiene lo siguiente:Luego
f("input1.txt")
produce:Julia: 604 caracteres
Esta es mi primera función en Julia, así que pido disculpas a los fanáticos de Julia si está mal escrita.
Uso:
fuente
Python2.X 85 caracteres, usando matplotlib
fuente
Mathematica 71
fuente