Rata-rata dua daftar
Tantangan
Diberikan dua daftar bilangan bulat positif, tentukan apakah mungkin untuk mengatur ulang elemen menjadi dua daftar baru sehingga daftar baru memiliki rata-rata aritmatika yang sama (rata-rata).
Memasukkan
Masukan dapat diambil melalui STDIN atau sebagai argumen fungsi. Input dapat diambil sebagai daftar, atau jika bahasa Anda tidak mendukung daftar (atau yang serupa seperti array / kamus) maka input dapat diambil sebagai string yang dibatasi koma atau spasi. Itu adalah,
"1 4 8 2 5,3 1 5 2 5"
sama dengan:
[ [1,4,8,2,5], [3,1,5,2,5] ]
Semua daftar input akan memiliki panjang yang sama .
Keluaran
Jika Anda dapat membuat dua daftar baru dengan rata-rata yang sama, program / fungsi Anda harus mencetak atau mengembalikan rata-rata. Jika Anda tidak bisa, program Anda akan menampilkan wajah sedih :(
.
Perhatikan bahwa daftar ulang dengan cara yang sama, jika ada, tidak perlu memiliki panjang yang sama. Sejumlah swap dapat dilakukan untuk membuat daftar baru.
Contohnya
1 4 8 2 5,3 1 5 2 5 -> 1 4 8 2 3,5 1 5 2 5 (swapped 3 and 5) -> 3.6
1 3 6 2,16 19 19 14 -> [[1,6,19,14],[3,2,16,19]] -> 10
2 6 2,6 3 5 -> 2 6,2 6 3 5 (moved 2) -> 4
90 80 20 1,40 60 28 18 -> :(
Ini adalah kode-golf sehingga kode terpendek dalam byte menang. Seperti biasa, celah standar tidak diizinkan.
sumber
Jawaban:
Pyth, 24 byte
Cobalah online: Peragaan
Terima kasih kepada Dennis karena melihat ada kesalahan dan bermain golf satu byte.
Penjelasan:
sumber
.O
)SWI-Prolog, 159 byte
Disebut sebagai
a([1,4,8,2,5],[3,1,5,2,5]).
sumber
Julia, 101 byte
Ini menciptakan fungsi yang menerima dua array dan mengembalikan string atau float yang sesuai.
Penjelasan + tidak dikumpulkan:
sumber
R, 94 Bytes
Pada dasarnya sama dengan Jakubes, saya pikir. Jika rata-rata dari kedua daftar cocok dengan rata-rata dari setiap kombinasi nilai dalam daftar hingga tetapi tidak termasuk panjang gabungan dari daftar, buat rata-rata hasilnya sebaliknya wajah sedih.
Uji coba
sumber
Jelly , 22 byte
Cobalah online!
Dilakukan dengan bantuan dari Mr. Xcoder dalam obrolan
Penjelasan
sumber
2 6 2,6 3 5 -> 2 6,2 6 3 5 (moved 2) -> 4
. Anda hanya membaginya menjadi dua bagian dengan panjang yang sama sekarang.