O objetivo do Rosetta Stone Challenge é escrever soluções no maior número possível de idiomas. Mostre seu multilinguismo de programação!
O desafio
Seu desafio é implementar um programa que insira uma lista de números e produza um gráfico de caixa dos dados, na maior quantidade possível de linguagens de programação . O gráfico da caixa exibirá os quartis e outliers nos dados e ainda terá uma escala. Você tem permissão para usar qualquer tipo de função de biblioteca padrão que seu idioma possua, pois essa é principalmente uma demonstração de idioma.
O que é um "gráfico de caixa"?
Um gráfico de caixa é uma maneira de representar graficamente os dados. Um gráfico de caixa tem alguns recursos essenciais. O primeiro recurso é uma caixa, com ambos os lados localizados no primeiro e terceiro quartis dos dados. Há uma linha no centro do gráfico da caixa que indica a mediana. Nas extremidades do gráfico de caixa, existem "bigodes" que ajudam a mostrar a variação dos dados. O bigode se estende da caixa aos mínimos e maiores pontos no conjunto de dados, excluindo os valores extremos. Os valores extremos são plotados como pontos individuais.
Primeiro, pegue a mediana dos dados. Em seguida, pegue todos os pontos de dados estritamente menores que a mediana e calcule a mediana desse conjunto para se tornar o primeiro quartil (Q1). Pegue todos os pontos de dados estritamente maiores que a mediana e calcule a mediana desse conjunto para se tornar o terceiro quartil (Q3). Encontre o valor de R = 1.5*(Q3 - Q1)
. Quaisquer números menos Q1 - R
isso são discrepantes. Quaisquer números maiores que Q3 + R
são discrepantes. Pegue o conjunto de todos os pontos de dados que não são discrepantes, e o mínimo e o máximo desse conjunto determinam as extremidades dos dois bigodes.
Entrada
A entrada começará com n=
seguida de um número. Haverá então n
números, um por linha. Todos os números serão inteiros de 0 a 63, inclusive.
n=8
29
1
22
18
12
16
16
22
Resultado
A saída será uma representação do gráfico da caixa. Uma maneira possível de desenhar o gráfico é renderizando-o em ASCII. É possível renderizar o gráfico da caixa de várias maneiras que não o ASCII, mas o principal requisito é aquele suficientemente grande, para que seja possível informar a localização exata dos recursos importantes. O gráfico da caixa deve ter uma escala, composta por cerca de 5 a 10 números igualmente espaçados. Aqui está um exemplo de plotagem dos dados acima:
+--+----+
| | |
X +-+ | +------+
| | |
+--+----+
0 0 1 1 2 2 3
0 5 0 5 0 5 0
O Critério de Vencimento Objetivo
Quanto a um critério de vitória objetivo, aqui está: Cada idioma é uma competição separada sobre quem pode escrever a entrada mais curta, mas o vencedor geral será a pessoa que vencer a maioria dessas subcompetições. Isso significa que uma pessoa que responde em vários idiomas incomuns pode obter uma vantagem. O código-golfe é principalmente um desempate para quando há mais de uma solução em um idioma: a pessoa com o programa mais curto recebe crédito por esse idioma.
Regras, restrições e notas
Seu programa pode ser escrito em qualquer idioma que existia antes de 11 de abril de 2013. Também terei que contar com a comunidade para validar algumas respostas escritas em alguns dos idiomas mais esotéricos / incomuns, pois é improvável que eu possa testar eles.
Classificação atual
Esta seção será atualizada periodicamente para mostrar o número de idiomas e quem lidera em cada um.
- Julia (604) - plannapus
- Mathematica (71) - chyanog
- Python2.X (85) - Abhijit
- R (34) - plannapus
Classificação do usuário atual
- plannapus - 2
- Abhijit - 1
- chyanog - 1
fonte
Respostas:
R: 34 caracteres
Obviamente, R sendo uma linguagem usada para estatística, ele vem com uma função
boxplot
para fazer isso (que precisa de um invólucro aqui para acomodar o estilo de entrada):Uso: dado um arquivo que
input1.txt
contém o seguinte:Então
f("input1.txt")
produz:Julia: 604 caracteres
Esta é a minha primeira função em Julia, então peço desculpas aos fãs de Julia se isso estiver mal escrito.
Uso:
fonte
Python2.X 85 caracteres, usando matplotlib
fonte
Mathematica 71
fonte