Ini adalah Hole-1 dari The Autumn Tournament dari APL CodeGolf . Saya adalah penulis asli masalah di sana, dan dengan demikian diizinkan memposting ulang di sini.
Diberikan daftar angka, #
buat bagan batang horizontal karakter untuk berapa banyak angka yang cocok dengan masing-masing dari sepuluh kelompok yang berukuran sama. Misalnya, jika data berkisar dari 0-100, kisarannya adalah 0–9,9, 10–19,9,…, 90–100. (Secara formal, [0,10), [10,20), ..., [90.100].). Anda dapat berasumsi bahwa paling tidak akan ada dua angka dan tidak semua angka sama.
Contoh:
[1,0,0,0,0,0,0,0,0,0]
memberi:
#########
#
[0,1,2,3,4,5,6,7,8,9]
memberi:
#
#
#
#
#
#
#
#
#
#
[0,1,2,3,4,5,6,7,8,9,10]
memberi:
#
#
#
#
#
#
#
#
#
##
[0,1,2,3,4,5,6,7,8,9,10,11]
memberi:
##
#
#
#
#
#
#
#
#
##
[0,-0.5,-1,-1.5,-2,-2.5,-3,-3.5,-4,-4.5,0.5,0,-0.5,-1,-1.5,-2,-2.5,-3,-3.5,-4,1,0.5,0,-0.5,-1,-1.5,-2,-2.5,-3,-3.5,1.5,1,0.5,0,-0.5,-1,-1.5,-2,-2.5,-3,2,1.5,1,0.5,0,-0.5,-1,-1.5,-2,-2.5,2.5,2,1.5,1,0.5,0,-0.5,-1,-1.5,-2,3,2.5,2,1.5,1,0.5,0,-0.5,-1,-1.5,3.5,3,2.5,2,1.5,1,0.5,0,-0.5,-1,4,3.5,3,2.5,2,1.5,1,0.5,0,-0.5,4.5,4,3.5,3,2.5,2,1.5,1,0.5,0]
memberi:
###
#######
###########
###############
#########
###################
###############
###########
#######
###
[9014,9082,9077,9068,8866,8710,9049,8364,8867,9015,9064,9023,9024,8804,8805,8800,8744,8743,8714,9076,8593,8595,9075,9675,8968,8970,8711,8728,8834,8835,8745,8746,8869,8868,9073,9074,9042,9035,9033,9021,8854,9055,9017,9045,9038,9067,9066,8801,8802,9496,9488,9484,9492,9532,9472,9500,9508,9524,9516,9474,8739,9079,8900,8592,8594,9053,9109,9054,9059]
memberi:
#
####
#########
############
######
#########################
###########
#
[0,8,10,13,32,12,6,7,27,9,37,39,95,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,1,2,175,46,48,49,50,51,52,53,54,55,56,57,3,165,36,163,162,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,4,5,253,183,127,193,194,195,199,200,202,203,204,205,206,207,208,210,211,212,213,217,218,219,221,254,227,236,240,242,245,123,125,168,192,196,197,198,201,209,214,216,220,223,224,225,226,228,229,230,231,232,233,234,235,237,238,239,241,91,47,92,60,61,62,45,43,247,215,63,126,42,40,124,59,44,33,243,244,246,248,34,35,30,38,180,64,249,250,251,94,252,96,182,58,191,161,41,93,31,160,167]
memberi:
#############
######################
##########################
#########################
#########################
#
########
################
########################
##########################
[0.9,1]
(dan tidak[0.9,1)
)?[0,1)
hanya berisi0
sementara baris bawah[9,10]
berisi keduanya9
dan10
.Jawaban:
Python 2 , 96 byte
Cobalah online!
sumber
Python 2 ,
10795 byteCobalah online!
sumber
*.1
tidak berfungsi alih-alih/10.
untuk kasus uji terakhir. TBH Saya tidak tahu mengapa itu tidak berhasil.R ,
7781 byte+4 byte untuk memperbaiki beberapa kasus uji
Cobalah online!
Tautan adalah versi kode yang mengambil input yang dipisahkan koma; versi ini dipisahkan oleh ruang.
Membaca dari stdin, mencetak ke stdout.
R adalah bahasa pemrograman statistik yang melakukan yang terbaik untuk memberikan hasil berkualitas tinggi, yang terkadang membuat frustrasi:
hist
memasukkan input ke histogrambreaks
sebagai argumen kedua. Biasanya, orang akan berharap bahwa Anda dapat menentukan bahwa jumlah istirahat menjadi 10. Memang, ini yang terjadi:(penekanan ditambahkan).
Namun, kalimat selanjutnya mengatakan:
Jadi saya melihat dokumentasi
pretty
dan itu tidak berfungsi untuk situasi kita, karena itu mengambil titik istirahat dengan demikian:Yang tidak akan berhasil.
Jadi
seq(min(x),max(x),,11)
menentukan 11 titik dengan jarak yang sama sebagaibreaks
,hist(x,breaks,r=F)$c
memberikan penghitungan,r=F
memastikan bahwa tempat sampah adalah interval buka-kanan, danfor
loop mengatur sisanya.sumber
C (gcc) , 241 byte
Cobalah online!
sumber
k
sebagai global, (+ 1byte) namun diinisialisasi ke 0, sehingga menghemat 3 byte darik=0
.double
kefloat
danlf
untukf
, menyimpan 2 byte lainnya. (setidaknya itu bekerja pada TIO)float
mungkin bekerja, saya tidak menggunakannya karena itu bukan tipe titik-mengambang "standar" dalam C dan mengurangi presisi, jadi tidak yakin ini diizinkan ...Mathematica, 152 byte
Cobalah online!
sumber
Range[0,9]
sementara saya berbicara tentangRange[0,10]
tanpa alasan. Tetapi sebenarnya gagal untukRange[0,10]
: TIO .<=
kedua ujungnya, yang benar pada segmen terakhir tetapi tidak pada 9 lainnya.JavaScript (ES6), 99 byte
Edit 2 byte, simpan thx @JustinMariner
Fungsi yang mengembalikan array string
Kurang golf
Uji
sumber
i
ke dalam tanda kurung array diikuti oleh koma, memungkinkan Anda untuk menghapus tanda kurung di sekitar badan fungsi peta: Cobalah online!i
dan menggunakanMath.min
lagi, dengan alias: Coba online!Python 2 ,
126121 byteCobalah online!
sumber
Jelly , 21 byte
Tautan monadik mengembalikan daftar string.
Cobalah online!
sumber
ÇŒṘ
atauÇY
di footer Anda untuk memvisualisasikan hasilnya. Selain itu, alih-alih program lengkap, Anda dapat mengatakan bahwa kiriman Anda adalah tautan monadik, yang mengembalikan alih-alih mencetak, menjadikannya secara otomatis valid.Pyth ,
3231 byteCoba di sini! atau Verifikasi semua kasus uji.(dengan menggunakan cetak cantik
j
)Bagaimana ini bekerja?
Ini adalah program lengkap yang menerima masukan dari STDIN. Ini untuk versi 32-byte. Saya akan segera memperbaruinya.
sumber
Arang , 31 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Input dari daftar panjang variabel tampaknya sedikit aneh di Charcoal, jadi saya harus membungkus daftar dalam array yang berisi string. Penjelasan:
sumber
Fortran 2003, 263 byte
Saya menulisnya di GNU gfortran 5.4.0, dan dikompilasi tanpa flag tambahan.
Bunyinya dari STDIN, satu nilai sekaligus, dan mencetak ke STDOUT.
Ini dia:
Penjelasan yang tidak dikenali: (Saya tidak tahu apakah "golf" dapat diterapkan ke fortran tetapi bagaimanapun juga: P)
Fakta menyenangkan: Saya membuat kode yang sama baru kemarin untuk menguji implementasi saya dari generator nomor acak Weibull, jadi hanya perlu sedikit adaptasi :)
sumber
Perl 5 , 85 + 1 (
-a
) = 86 byteCobalah online!
sumber
Perl 5, 84 + 19 (-Mist :: Util = min, maks) byte
Cobalah secara Online
sumber
Perl 5, 102 byte
Cobalah online .
Tidak Disatukan:
sumber
Java (OpenJDK 8) ,
246221209207206163162161byteCobalah online!
sumber
q / kdb +, 52 byte
Larutan:
Cobalah online! (Perhatikan bahwa tautan TIO adalah 44 byte K (ok) port dari solusi ini karena tidak ada TIO untuk q / kdb +).
Contoh:
Penjelasan:
Sebagian besar kode digunakan untuk membuat ember yang
bin
memasukkan input.sumber
Jelly , 19 byte
Cobalah online!
Ini didasarkan pada jawaban APL saya untuk masalah awal, yang akan saya posting setelah kompetisi selesai.
Bagaimana? (Saya tidak pandai menjelaskan hal-hal)
sumber