L'objectif d'un Rosetta Stone Challenge est d'écrire des solutions dans autant de langues que possible. Montrez votre multilinguisme de programmation!
Le défi
Votre défi est de mettre en œuvre un programme qui entrera une liste de nombres et produira un diagramme à boîte des données, dans autant de langages de programmation que possible . Le diagramme en boîte affichera les quartiles et les valeurs aberrantes dans les données, et il aura même une échelle. Vous êtes autorisé à utiliser n'importe quelle sorte de fonction de bibliothèque standard de votre langue, car il s'agit principalement d'une vitrine de langue.
Qu'est-ce qu'un "box plot"?
Un diagramme en boîte est un moyen de représenter graphiquement les données. Une boîte à moustaches présente quelques caractéristiques essentielles. La première caractéristique est une boîte, chaque côté étant situé dans les premier et troisième quartiles des données. Il y a une ligne au centre de l'intrigue qui donne la médiane. À chaque extrémité de la boîte à moustaches, il y a des «moustaches» qui aident à montrer la variance des données. Le moustache s'étend de la boîte aux points les plus petits et les plus grands de l'ensemble de données, à l'exclusion des valeurs aberrantes. Les valeurs aberrantes sont tracées sous forme de points individuels.
Tout d'abord, prenez la médiane des données. Ensuite, prenez tous les points de données strictement inférieurs à la médiane et calculez la médiane de cet ensemble pour devenir le premier quartile (Q1). Prenez tous les points de données strictement supérieurs à la médiane et calculez la médiane de cet ensemble pour devenir le troisième quartile (Q3). Trouvez la valeur de R = 1.5*(Q3 - Q1)
. Tout nombre moins que Q1 - R
ce sont des valeurs aberrantes. Tous les nombres supérieurs aux Q3 + R
valeurs aberrantes. Prenez l'ensemble de tous les points de données qui ne sont pas aberrants, et le minimum et le maximum de cet ensemble déterminent les extrémités des deux moustaches.
Contribution
La saisie commencera par n=
suivie d'un nombre. Il y aura ensuite des n
chiffres, un par ligne. Tous les nombres seront des entiers de 0 à 63 inclus.
n=8
29
1
22
18
12
16
16
22
Production
La sortie sera un rendu du diagramme en boîte. Une façon possible de dessiner le tracé est de le rendre en ASCII. Vous pouvez rendre le diagramme en boîte de différentes manières autres qu'en ASCII, mais la principale exigence est qu'il soit suffisamment grand pour pouvoir indiquer l'emplacement exact des fonctions importantes. Le diagramme en boîte doit avoir une échelle, composée d'environ 5 à 10 nombres également espacés. Voici un exemple de tracé des données ci-dessus:
+--+----+
| | |
X +-+ | +------+
| | |
+--+----+
0 0 1 1 2 2 3
0 5 0 5 0 5 0
Le critère de gain objectif
En ce qui concerne un critère de gain objectif, le voici: chaque langue est une compétition distincte pour savoir qui peut écrire la plus courte inscription, mais le gagnant général serait la personne qui remporte le plus de ces sous-compétitions. Cela signifie qu'une personne qui répond dans de nombreuses langues rares peut bénéficier d'un avantage. Le code-golf est surtout un bris d'égalité lorsqu'il y a plus d'une solution dans une langue: la personne avec le programme le plus court obtient un crédit pour cette langue.
Règles, restrictions et notes
Votre programme peut être écrit dans n'importe quelle langue qui existait avant le 11 avril 2013. Je devrai également compter sur la communauté pour valider certaines réponses écrites dans certaines des langues les plus rares / ésotériques, car il est peu probable que je puisse tester leur.
Classement actuel
Cette section sera périodiquement mise à jour pour montrer le nombre de langues et qui mène dans chacune.
- Julia (604) - plannapus
- Mathematica (71) - chyanog
- Python2.X (85) - Abhijit
- R (34) - plannapus
Classements des utilisateurs actuels
- plannapus - 2
- Abhijit - 1
- chyanog - 1
la source
Réponses:
R: 34 caractères
Bien sûr, R étant un langage utilisé pour les statistiques, il est livré avec une fonction
boxplot
pour ce faire (qui a besoin ici d'un wrapper pour s'adapter au style d'entrée):Utilisation: étant donné un fichier
input1.txt
contenant les éléments suivants:f("input1.txt")
Produit ensuite :Julia: 604 caractères
Ceci est ma toute première fonction dans Julia, donc mes excuses aux fans de Julia si c'est mal écrit.
Usage:
la source
Python2.X 85 caractères, utilisant matplotlib
la source
Mathematica 71
la source