Tantangan:
Ambil daftar, L yang berisi bilangan bulat positif sebagai input:
3 5 2 1 6
dan buat matriks di mana kolom ke- n berisi vektor 1: L (n) , di mana baris yang lebih pendek diisi dengan nol.
Kasus uji:
3 5 2 1 6
-----------------
1 1 1 1 1
2 2 2 0 2
3 3 0 0 3
0 4 0 0 4
0 5 0 0 5
0 0 0 0 6
1
-
1
1 2 3 4 3 2 1
-------------------------
1 1 1 1 1 1 1
0 2 2 2 2 2 0
0 0 3 3 3 0 0
0 0 0 4 0 0 0
Aturan:
- Input dan output format opsional
- Daftar daftar adalah format output yang dapat diterima
- Matriks harus sekecil mungkin (Anda mungkin tidak menambahkannya dengan nol lebih banyak dari yang dibutuhkan)
- Kode terpendek di setiap bahasa menang
- Penjelasan sangat dianjurkan
Jawaban:
R ,
4038 byteCobalah online!
Penjelasan:
outer
berlaku argumen ketiga (fungsi) untuk semua kombinasi elemen dari dua argumen pertamanya, menghasilkan matriksTRUE
dan diFALSE
mana setiap kolom memiliki diTRUE
mana1:max(l)
kurang dari atau sama dengan elemen yang sesuail
, misalnya di manal=c(3,5,2,1,6)
:Kemudian seandainya matriks yang dihasilkan adalah
A
, kemudianA*m
->A[i,j]=A[i,j]*i
yang memaksaTRUE
ke 1 danFALSE
ke 0, menghasilkan hasil yang diinginkan.sumber
function(l)
denganl=scan();
print
jadi saya akan kehilangan byte itu.source(...,echo=TRUE)
dan membaca dari stdin sebagai program penuh, jika Anda memiliki saran alternatif, tentu saja menimbang di sana, tetapi sejauh yang saya tahu itu adalah yang terdekat yang kami miliki untuk konsensus R pada program penuh dan itu berdiri untuk saat ini.MATL , 8 byte
Cobalah online!
Penjelasan
sumber
Python 3 , 54 byte
Cobalah online!
sumber
Mathematica, 20 byte
Berisi U + F3C7 (
Transpose
fungsi bawaan Matematika )Cobalah di Wolfram Sandbox
Pemakaian
Penjelasan
sumber
Oktaf , 26 byte
Fungsi anonim yang menginput vektor baris dan menghasilkan matriks.
Cobalah online!
Penjelasan
Pertimbangkan input
x = [3 5 2 1 6]
. Ini adalah vektor baris ukuran 1 × 5.1:max(x)
memberikan vektor baris[1 2 3 4 5 6]
, yang ditugaskan ke variabely
.Transposnya, yaitu vektor kolom
[1; 2; 3; 4; 5; 6]
, adalah<=
-compared (elemen-bijaksana dengan siaran) dengan input[3 5 2 1 6]
. Hasilnya adalah matriks 6 × 5Akhirnya, mengalikan (elemen-bijaksana dengan siaran) oleh vektor kolom
[1; 2; 3; 4; 5; 6]
, diperoleh sebagaiy
ditransposisikan, memberikan hasil yang diinginkan:sumber
05AB1E , 4 byte
Cobalah online! atau sebagai test suite yang diformat dengan baik
sumber
Sekam , 4 byte
Mengembalikan daftar daftar
Cobalah online!
Penjelasan
sumber
Pyth , 6 byte
Coba di sini! atau Verifikasi semua test case (dengan cetak-cantik)!
Penjelasan
Versi transpose non-built-in adalah :
Ini berfungsi sebagai berikut:
sumber
Jelly , 3 byte
Cobalah online!
Penjelasan
sumber
Sebenarnya , 17 byte
Cobalah online!
Penjelasan:
sumber
Pyke , 3 byte
Ini menggunakan fitur baru Pyke, hex encodings ... Bagian terbaiknya adalah kita mengikat Jelly! Byte mentah:
Coba di sini!
Setara ASCII-Pyke akan menjadi 4 byte :
Bagaimana?
Berikut adalah versi yang cukup-print dengan ASCII, dan di sini adalah satu dengan pengkodean hex.
sumber
Perl 6 , 39 byte
Cobalah
Diperluas:
Perhatikan bahwa
zip
berakhir setelah daftar input terpendek habis.sumber
C # , 136 byte
Data
Int32[]
i
Array intInt32[,]
Array dua arah.Golf
Tidak disatukan
Tidak terbaca dibaca
Kode lengkap
Rilis
136 bytes
- Solusi awal.Catatan
sumber
C (gcc) , 142 byte
Cobalah online!
sumber
Java 10, 115 byte
Penjelasan:
Cobalah online.
sumber
Perl 5 , 62 + 1 (
-a
) = 63 byteCobalah online!
sumber
Proton , 38 byte
Cobalah online!
sumber
Tambahkan ++ , 37 byte
Cobalah online!
sumber
JavaScript (Node.js) , 55 byte
Cobalah online!
JavaScript (Node.js) , 63 byte
Cobalah online!
sumber