Tujuan dari Rosetta Stone Challenge adalah menulis solusi dalam bahasa sebanyak mungkin. Pamerkan multibahasa Anda dalam pemrograman!
Tantangan
Tantangan Anda adalah mengimplementasikan program yang akan memasukkan daftar angka dan menampilkan plot data, dalam sebanyak mungkin bahasa pemrograman . Plot kotak akan menampilkan kuartil dan pencilan dalam data, dan bahkan akan memiliki skala. Anda diperbolehkan menggunakan segala jenis fungsi perpustakaan standar yang dimiliki bahasa Anda, karena ini sebagian besar adalah karya bahasa.
Apa itu "plot kotak"?
Sebuah plot kotak adalah cara grafik data. Sebuah plot kotak memiliki beberapa fitur penting. Fitur pertama adalah kotak, dengan kedua sisi berada di kuartil pertama dan ketiga data. Ada garis di tengah plot kotak yang memberikan median. Di kedua ujung plot kotak, ada "kumis" yang membantu menunjukkan varians data. Kumis memanjang dari kotak ke titik terkecil dan terbesar dalam kumpulan data, tidak termasuk outlier. Pencilan diplot sebagai poin individual.
Pertama, ambil median data. Kemudian, ambil semua titik data yang benar - benar kurang dari median, dan hitung median himpunan ini untuk menjadi kuartil pertama (Q1). Ambil semua titik data yang benar - benar lebih besar dari median, dan hitung median himpunan ini untuk menjadi kuartil ketiga (Q3). Temukan nilai R = 1.5*(Q3 - Q1)
. Angka kurang dari Q1 - R
ini adalah outlier. Angka lebih besar dari Q3 + R
outlier. Ambil set semua titik data yang tidak outlier, dan minimum dan maksimum set ini menentukan ujung kedua kumis.
Memasukkan
Input akan dimulai dengan n=
diikuti oleh angka. Maka akan ada n
angka, satu per baris. Semua angka akan berupa bilangan bulat dari 0 hingga 63, inklusif.
n=8
29
1
22
18
12
16
16
22
Keluaran
Output akan berupa rendition plot kotak. Salah satu cara yang mungkin untuk menggambar plot adalah dengan merendernya di ASCII. Anda dapat membuat plot kotak dengan banyak cara selain ASCII, tetapi persyaratan utamanya adalah yang dibuat cukup besar sehingga memungkinkan untuk mengetahui lokasi yang tepat dari fitur-fitur penting. Petak kotak harus memiliki skala, yang terdiri dari sekitar 5-10 angka dengan jarak yang sama. Berikut ini salah satu contoh plot dari data di atas:
+--+----+
| | |
X +-+ | +------+
| | |
+--+----+
0 0 1 1 2 2 3
0 5 0 5 0 5 0
Kriteria Kemenangan yang Objektif
Adapun kriteria kemenangan yang objektif, ini dia: Setiap bahasa adalah kompetisi terpisah untuk siapa yang dapat menulis entri terpendek, tetapi pemenang keseluruhan adalah orang yang memenangkan sebagian besar sub-kompetisi ini. Ini berarti bahwa seseorang yang menjawab dalam banyak bahasa yang tidak biasa dapat memperoleh keuntungan. Code-golf sebagian besar tiebreak ketika ada lebih dari satu solusi dalam bahasa: orang dengan program terpendek mendapat pujian untuk bahasa itu.
Aturan, Batasan, dan Catatan
Program Anda dapat ditulis dalam bahasa apa pun yang ada sebelum 11 April 2013. Saya juga harus bergantung pada komunitas untuk memvalidasi beberapa tanggapan yang ditulis dalam beberapa bahasa yang lebih tidak umum / esoterik, karena saya tidak mungkin dapat menguji mereka.
Papan Peringkat Saat Ini
Bagian ini akan diperbarui secara berkala untuk menunjukkan jumlah bahasa dan siapa yang memimpin di masing-masing bahasa.
- Julia (604) - plannapus
- Mathematica (71) - chyanog
- Python2.X (85) - Abhijit
- R (34) - plannapus
Peringkat Pengguna Saat Ini
- plannapus - 2
- Abhijit - 1
- chyanog - 1
sumber
Jawaban:
R: 34 karakter
Tentu saja, R menjadi bahasa yang digunakan untuk statistik, ia dilengkapi dengan fungsi
boxplot
untuk melakukan ini (yang membutuhkan pembungkus di sini untuk mengakomodasi gaya input):Penggunaan: Diberikan file yang
input1.txt
mengandung berikut:Kemudian
f("input1.txt")
menghasilkan:Julia: 604 karakter
Ini adalah fungsi pertama saya di Julia, jadi saya minta maaf kepada penggemar Julia jika ini ditulis dengan buruk.
Pemakaian:
sumber
Python2.X 85 Karakter, menggunakan matplotlib
sumber
Mathematica 71
sumber