Das Ziel einer Rosetta Stone Challenge ist es, Lösungen in möglichst vielen Sprachen zu schreiben. Zeigen Sie Ihre Programmier-Mehrsprachigkeit!
Die Herausforderung
Ihre Herausforderung besteht darin, ein Programm zu implementieren, das eine Liste von Zahlen eingibt und ein Box-Diagramm der Daten in so vielen Programmiersprachen wie möglich ausgibt . Das Box-Diagramm zeigt die Quartile und Ausreißer in den Daten an und hat sogar eine Skala. Sie dürfen jede Art von Standardbibliotheksfunktion verwenden, über die Ihre Sprache verfügt, da dies meistens eine Sprachpräsentation ist.
Was ist ein "Boxplot"?
Ein Box-Plot ist eine Möglichkeit, Daten grafisch darzustellen. Ein Box-Plot weist einige wesentliche Merkmale auf. Das erste Merkmal ist eine Box, wobei sich jede Seite im ersten und dritten Quartil der Daten befindet. In der Mitte des Boxplots befindet sich eine Linie, die den Median angibt. An beiden Enden des Boxplots befinden sich "Whisker", mit deren Hilfe die Varianz der Daten angezeigt werden kann. Der Whisker erstreckt sich von der Box bis zu den kleinsten und größten Punkten im Datensatz, mit Ausnahme der Ausreißer. Die Ausreißer werden als einzelne Punkte dargestellt.
Nehmen Sie zunächst den Median der Daten. Nehmen Sie dann alle Datenpunkte, die streng kleiner als der Median sind, und berechnen Sie den Median dieser Menge, um das erste Quartil (Q1) zu werden. Nehmen Sie alle Datenpunkte, die streng größer als der Median sind, und berechnen Sie den Median dieser Menge, um das dritte Quartil (Q3) zu werden. Finden Sie den Wert von R = 1.5*(Q3 - Q1)
. Alle Zahlen weniger Q1 - R
sind Ausreißer. Alle Zahlen größer als Q3 + R
Ausreißer. Nehmen Sie den Satz aller Datenpunkte, die keine Ausreißer sind, und das Minimum und Maximum dieses Satzes bestimmt die Enden der beiden Whisker.
Eingang
Die Eingabe beginnt mit n=
einer Zahl, gefolgt von einer Zahl. Es wird dann n
Zahlen geben, eine pro Zeile. Alle Zahlen sind ganze Zahlen von 0 bis einschließlich 63.
n=8
29
1
22
18
12
16
16
22
Ausgabe
Die Ausgabe erfolgt als Wiedergabe des Boxplots. Eine Möglichkeit, das Diagramm zu zeichnen, besteht darin, es in ASCII zu rendern. Sie können das Box-Diagramm auf viele andere Arten als ASCII rendern. Die Hauptanforderung ist jedoch, dass es groß genug gezeichnet wird, damit die genauen Positionen der wichtigen Features ermittelt werden können. Das Box-Diagramm sollte eine Skala haben, die aus etwa 5-10 Zahlen mit gleichem Abstand besteht. Hier ist ein Beispieldiagramm der obigen Daten:
+--+----+
| | |
X +-+ | +------+
| | |
+--+----+
0 0 1 1 2 2 3
0 5 0 5 0 5 0
Das objektive Gewinnkriterium
Ein objektives Gewinnkriterium ist hier: Jede Sprache ist ein separater Wettbewerb darüber, wer den kürzesten Beitrag schreiben kann, aber der Gesamtsieger wäre die Person, die die meisten dieser Unterwettbewerbe gewinnt. Dies bedeutet, dass eine Person, die in vielen ungewöhnlichen Sprachen antwortet, einen Vorteil erzielen kann. Code-Golf ist meistens ein Tiebreaker, wenn es in einer Sprache mehr als eine Lösung gibt: Die Person mit dem kürzesten Programm erhält eine Gutschrift für diese Sprache.
Regeln, Einschränkungen und Hinweise
Ihr Programm kann in jeder Sprache geschrieben werden, die vor dem 11. April 2013 existierte. Ich muss mich auch auf die Community verlassen, um einige Antworten zu validieren, die in einigen der ungewöhnlicheren / esoterischeren Sprachen geschrieben wurden, da ich wahrscheinlich nicht testen kann Sie.
Aktuelle Rangliste
Dieser Abschnitt wird regelmäßig aktualisiert, um die Anzahl der Sprachen und die jeweils führenden Personen anzuzeigen.
- Julia (604) - Planapus
- Mathematica (71) - Chyanog
- Python2.X (85) - Abhijit
- R (34) - Planapus
Aktuelle Benutzerrankings
- Planapus - 2
- Abhijit - 1
- Chyanog - 1
quelle
Antworten:
R: 34 Zeichen
Da R eine Sprache ist, die für Statistiken verwendet wird, verfügt es natürlich über eine entsprechende Funktion
boxplot
(für die hier ein Wrapper erforderlich ist, um den Eingabestil zu berücksichtigen):Verwendung: Gegeben eine Datei
input1.txt
, die Folgendes enthält:Dann
f("input1.txt")
produziert:Julia: 604 Zeichen
Dies ist meine allererste Veranstaltung in Julia, also entschuldige ich mich bei den Fans von Julia, wenn dies schlecht geschrieben ist.
Verwendungszweck:
quelle
Python2.X 85 Zeichen mit matplotlib
quelle
Mathematica 71
quelle