Latar Belakang
Delta array integer adalah array yang dibentuk dengan mendapatkan perbedaan elemen berurutan. Misalnya, [1, 2, 4, 7, 3, 9, 6]
memiliki delta berikut: [1, 2, 3, -4, 6, -3]
.
Kami sekarang akan mendefinisikan delta dari matriks bilangan bulat sebagai delta dari setiap baris dan setiap kolom yang dikandungnya.
Sebagai contoh:
Row deltas:
1 2 3 4 │ => [1, 1, 1]
4 5 6 7 │ => [1, 1, 1]
7 1 8 2 │ => [-6, 7, -6]
Column deltas (the matrix' columns have been rotated into rows for simplicity):
1 4 7 │ => [3, 3]
2 5 1 │ => [3, -4]
3 6 8 │ => [3, 2]
4 7 2 │ => [3, -5]
Yang memberi kami daftar delta matriks berikut:
[[1, 1, 1], [1, 1, 1], [-6, 7, -6], [3, 3], [3, -4], [3, 2], [3, -5]]
Dan karena kami tidak ingin mereka disarangkan, kami meratakan daftar itu:
[1, 1, 1, 1, 1, 1, -6, 7, -6, 3, 3, 3, -4, 3, 2, 3, -5]
Tugas
Tugas Anda adalah untuk menjumlahkan semua delta dari matriks yang diberikan sebagai input. Perhatikan bahwa matriks hanya akan terdiri dari bilangan bulat non-negatif.
Aturan
Semua aturan standar berlaku.
Anda dapat mengasumsikan matriks berisi setidaknya dua nilai pada setiap baris dan kolom, sehingga ukuran minimum akan 2x2 .
Anda dapat mengambil matriks dalam format yang masuk akal, selama Anda menentukannya.
Anda mungkin tidak berasumsi bahwa matriksnya adalah persegi.
Jika mungkin membantu Anda mengurangi jumlah byte Anda, Anda dapat juga mengambil jumlah baris dan jumlah kolom sebagai input (Melihat Anda C!).
Ini adalah kode-golf, jadi kode terpendek (dalam byte), dalam setiap bahasa menang!
Uji Kasus
Input => Output [[1, 2], [1, 2]] => 2 [[8, 7, 1], [4, 1, 3], [5, 5, 5]] => -9 [[1, 2, 3], [4, 5, 6], [7, 8, 9]] => 24 [[9, 9, 9, 9, 9], [9, 9, 9, 9, 9]] => 0 [[1, 3, 14], [56, 89, 20], [99, 99, 99]] => 256 [[1, 2, 3, 4], [4, 5, 6, 7], [7, 1, 8, 2]] => 9 [[13, 19, 478], [0, 12, 4], [45, 3, 6], [1, 2, 3]] => -72
ṁ
.APL,
1815 byteCobalah online!
sumber
+/∘∊(2-⍨/⍉⍪⊢)
Haskell , 60 byte
Cobalah online! Menggunakan transpos pendek yang saya temukan beberapa waktu lalu.
Penjelasan
e
adalah daftar kosong yang tak terbatas dan digunakan untuk transposing.z
adalah singkatan untukzipWith
fungsi, karena digunakan dua kali.sumber
Brachylog , 13 byte
berdasarkan aslinya dari desain @ sundar
Penjelasan
yang
⟨⟩
sedang mengacaukan format, maafCobalah online!
sumber
Pyth, 7 byte
Coba di sini.
Jawaban pertama saya dalam bahasa golf! Terima kasih kepada @EriktheOutgolfer untuk -1 byte!
Penjelasan
sumber
.t
bisaC
untuk -1.Brachylog ,
2216 byteCobalah online!
(-6 byte terinspirasi oleh saran @ Kroppeb.)
sumber
⟨t-h⟩
melakukan trik. Menghasilkan{⟨t-h⟩ᵐ+}R&\↰₁;R+
lebih pendek 5 byte. Cobalah online!⟨≡{...}ᵐ\⟩+
bukannya{...}R&\↰₁;R+
menghemat 2 byte. Menghasilkan⟨≡{⟨t-h⟩ᵐ+}ᵐ\⟩+
Cobalah secara online!⟨≡⟨t-h⟩ᵐ²\⟩c+
. Cobalah online!⟨≡{s₂ᶠc+ᵐ-}ᵐ\⟩+ṅ
Cobalah secara online! , jadi saya akan memperbarui jawaban ini dengan versi itu.Japt
-x
,11109 byteCobalah
Penjelasan
sumber
SOGL V0.12 , 9 byte
Coba Di Sini! (
→
ditambahkan karena ini membutuhkan input dari stack)Penjelasan:
sumber
→
ditambahkan karena ini membutuhkan input pada stack - Saya sudah lama ingin menanyakan hal ini: Apakah input didorong secara otomatis ke stack? Jika tidak, dan mengharapkan input sudah ada di stack, bukankah seharusnya Anda menambahkan→
dalam byte byte Anda juga? Tidak yakin bagaimana situasi ini ditangani. Atau seperti sebuah fungsi?functionNameSingleChar\n
)Mathematica, 45 byte
Memasukkan
sumber
{#,Transpose@#}
(seperti jawaban Python saya)?Total[Differences/@{#,Thread@#},3]&
CJam , 19 byte
Input adalah daftar daftar angka. Cobalah online!
Penjelasan
sumber
2few
titik dua.MY, 9 byte
Cobalah online!
Karena saya tidak dapat mem-ping Dennis dalam obrolan untuk menarik MY (karena penangguhan), saat ini tidak akan berfungsi. (Terima kasih kepada siapa pun yang membuat Dennis menarik MY!Δ
sebelumnya tidak memverifikasi saat mengurangkan)Bagaimana?
ωΔ
, penambahan argumen baris perintah pertamaω⍉Δ
, penambahan transpos argumen baris perintah pertama, dalam satu daftar
ḟ
, ratakanΣ
, jumlah↵
, keluaransumber
APL (Dyalog Classic) , 12 byte
Cobalah online!
sumber
Pyt , 11 byte
Penjelasan:
sumber