Celem Stone Rosetta Challenge jest pisanie rozwiązań w jak największej liczbie języków. Pochwal się swoją wielojęzycznością programistyczną!
Wyzwanie
Wyzwanie polega na wdrożeniu programu, który wprowadzi listę liczb i wyprowadzi wykres skrzynkowy danych, w jak największej liczbie języków programowania . Wykres pudełkowy wyświetli kwartyle i wartości odstające w danych, a nawet będzie miał skalę. Możesz używać dowolnej standardowej funkcji bibliotecznej, którą posiada Twój język, ponieważ jest to głównie prezentacja języka.
Co to jest „fabuła pudełkowa”?
Wykres pudełkowy jest sposobem wykresów danych. Fabuła pudełkowa ma kilka istotnych cech. Pierwszą cechą jest pole, w którym każda ze stron znajduje się w pierwszym i trzecim kwartyle danych. Na środku wykresu pola znajduje się linia, która podaje medianę. Na obu końcach wykresu pudełkowego znajdują się „wąsy”, które pomagają pokazać wariancję danych. Wąs rozciąga się od pudełka do najmniejszych i największych punktów w zbiorze danych, z wyłączeniem wartości odstających. Wartości odstające są wykreślane jako pojedyncze punkty.
Najpierw weź medianę danych. Następnie weź wszystkie punkty danych, które są znacznie mniejsze niż mediana, i oblicz medianę tego zbioru, aby stać się pierwszym kwartylem (Q1). Weź wszystkie punkty danych, które są ściśle większe niż mediana, i oblicz medianę tego zbioru, aby stać się trzecim kwartylem (Q3). Znajdź wartość R = 1.5*(Q3 - Q1)
. Wszelkie liczby mniejsze Q1 - R
to wartości odstające. Wszelkie liczby większe niż Q3 + R
są wartościami odstającymi. Weź zestaw wszystkich punktów danych, które nie są wartościami odstającymi, a minimum i maksimum tego zestawu określa końce dwóch wąsów.
Wejście
Wprowadzanie rozpocznie się n=
od numeru. Będą wtedy n
liczby, po jednej w wierszu. Wszystkie liczby będą liczbami całkowitymi od 0 do 63 włącznie.
n=8
29
1
22
18
12
16
16
22
Wynik
Wyjście będzie interpretacją wykresu pudełkowego. Jednym z możliwych sposobów narysowania wykresu jest renderowanie go w ASCII. Możesz renderować wykresy pudełkowe na wiele sposobów innych niż ASCII, ale głównym wymaganiem jest to, aby były narysowane wystarczająco duże, aby można było określić dokładne położenie ważnych funkcji. Wykres pudełkowy powinien mieć skalę, składającą się z około 5-10 liczb w równych odstępach. Oto przykładowy wykres powyższych danych:
+--+----+
| | |
X +-+ | +------+
| | |
+--+----+
0 0 1 1 2 2 3
0 5 0 5 0 5 0
Kryterium zwycięskiego celu
Jeśli chodzi o obiektywne kryterium wygranej, oto on: Każdy język to osobny konkurs na to, kto może napisać najkrótszą pracę, ale ogólnym zwycięzcą byłaby osoba, która wygra najwięcej z tych pod-konkursów. Oznacza to, że osoba, która odpowiada w wielu nietypowych językach, może zyskać przewagę. Code-golf jest przeważnie rozstrzygający, gdy istnieje więcej niż jedno rozwiązanie w języku: osoba z najkrótszym programem otrzymuje kredyt za ten język.
Reguły, ograniczenia i uwagi
Twój program może być napisany w dowolnym języku, który istniał przed 11 kwietnia 2013 r. Będę też musiał polegać na społeczności, aby zweryfikować niektóre odpowiedzi napisane w niektórych bardziej rzadkich / ezoterycznych językach, ponieważ jest mało prawdopodobne, że będę w stanie przetestować im.
Aktualny ranking
Ta sekcja będzie okresowo aktualizowana, aby pokazać liczbę języków i kto prowadzi w każdym z nich.
- Julia (604) - plannapus
- Mathematica (71) - chyanog
- Python2.X (85) - Abhijit
- R (34) - plannapus
Aktualne rankingi użytkowników
- plannapus - 2
- Abhijit - 1
- chyanog - 1
źródło
Odpowiedzi:
R: 34 znaki
Oczywiście, ponieważ R jest językiem używanym do statystyki, zawiera funkcję
boxplot
do tego celu (która potrzebuje tutaj opakowania, aby dostosować się do stylu wprowadzania):Użycie: Biorąc pod uwagę plik
input1.txt
zawierający następujące elementy:Następnie
f("input1.txt")
produkuje:Julia: 604 znaków
To moja pierwsza funkcja w Julii, więc przepraszam fanów Julii, jeśli jest źle napisana.
Stosowanie:
źródło
Python2.X 85 znaków, używając matplotlib
źródło
Mathematica 71
źródło