Pola Umum Array 2D
Termasuk bagian Logika dan Alur dalam perjalanan Ruby di Coddy. Pelajaran 13 dari 56.
Beberapa operasi 2D-array sering muncul sehingga perlu dikenali namanya.
Jumlahkan setiap sel: ratakan grid menjadi array 1D dan panggil sum:
grid = [[1, 2], [3, 4]]
puts grid.flatten.sum # 10Diagonal utama: sel tempat indeks baris sama dengan indeks kolom (matrix[i][i]):
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
(0...matrix.length).each do |i|
puts matrix[i][i]
end
# 1, 5, 9Transpose: Ruby sudah menyediakan fitur ini. Baris menjadi kolom dan sebaliknya:
matrix.transpose
# [[1, 4, 7], [2, 5, 8], [3, 6, 9]]Mengetahui nama-nama ini membuatmu tidak perlu menulis ulang perulangan bersarang yang sama.
Tantangan
MudahPersegi matrix diberikan (n × n). Cetak tiga baris, semuanya berasal dari pola dalam teori:
Anti-diagonal sum: <n>, jumlah sel denganr + c == matrix.length - 1Column sums: [...], jumlah setiap kolom. Petunjuk: lakukan transpose terlebih dahulu, lalu petakan setiap baris menjadi jumlahnya, kemudianinspectSymmetric: trueataufalse: apakah matrix sama dengan hasil transpose-nya sendiri?
Untuk matrix default, output-nya adalah:
Anti-diagonal sum: 15
Column sums: [12, 15, 18]
Symmetric: falseCoba sendiri
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# TODO: hitung jumlah diagonal sekunder, jumlah tiap kolom dengan transpose, dan periksa apakah matriks simetris
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami String
Ringkasan Method StringInterpolasi StringMenelusuri StringMemisahkan dan MenggabungkanRekap: Perangkai String4Block, Proc, dan Lambda
Apa Itu Block?do..end vs Kurung KurawalKata Kunci yieldParameter BlockProc dan LambdaRangkuman, Iterator Kustom5Andalan Enumerable
Select dan RejectMerangkai MapReduce / Injectcount, all?, any?, none?group_by dan partitionsort_by, min_by, max_byRekap: Alur Data8Pengambilan Keputusan Lanjutan
Case dengan class & regexwhen dengan Banyak NilaiOperator Ternaryif / unless SebarisUlasan, Pengklasifikasi Nilai3Array 2D
Dasar Array 2DMengakses Elemen Array 2DMenelusuri Array 2DPola Umum Array 2DRekap: Operasi Matriks6Proyek: Pengelola Perpustakaan
Ikhtisar ProyekTambahkan BukuLatihan sendiri: Compiler Ruby online