Yaygın 2B Örüntüler
Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 13 / 56.
Bazı 2B dizi işlemleri o kadar sık karşınıza çıkar ki onları adlarıyla tanımaya değer.
Her hücreyi topla: ızgarayı 1B bir diziye düzleştir ve sum çağrısı yap:
grid = [[1, 2], [3, 4]]
puts grid.flatten.sum # 10Ana köşegen: satır indeksinin sütun indeksine eşit olduğu hücreler (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, 9Transpoze: Ruby'de bu özellik yerleşik olarak bulunur. Satırlar sütunlara, sütunlar da satırlara dönüşür:
matrix.transpose
# [[1, 4, 7], [2, 5, 8], [3, 6, 9]]Bunları adlarıyla bilmek, aynı iç içe döngüleri yeniden yazmaktan kurtarır.
Görev
KolayKare matrix (n × n) verilmiştir. Teorideki örüntülerden türetilen üç satır yazdırın:
Anti-diagonal sum: <n>;r + c == matrix.length - 1olan hücrelerin toplamıColumn sums: [...]; her sütunun toplamı. İpucu: önce transpoze edin, ardından her satırı toplamına eşleyin ve sonrainspectedinSymmetric: trueveyafalse: matris kendi transpozuna eşit mi?
Varsayılan matris için çıktı şöyledir:
Anti-diagonal sum: 15
Column sums: [12, 15, 18]
Symmetric: falseKendin dene
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# TODO: anti-diagonal sum, column sums via transpose, symmetric check
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1Dizeler Detaylı İnceleme
Dize Metotlarına Genel BakışDize EnterpolasyonuDizeler Üzerinde YinelemeBölme ve BirleştirmeTekrar - Dize Dokuyucu4Bloklar, Proc'lar ve Lambda'lar
Blok Nedir?do..end ve Süslü Parantezleryield Anahtar SözcüğüBlok ParametreleriProc'lar ve Lambda'larÖzet - Özel Yineleyici7Hash'ler 2. Bölüm
Varsayılanlarla Hash.newHash'ler Üzerinde Yinelemeİç İçe Hash'lerBirleştirme ve DönüştürmeTekrar - Frekans Sayacı10Proje - Öğrenci Kayıtları
Projeye Genel BakışÖğrenci Ekle5Enumerable Gücü
Seçme ve ReddetmeMap ZincirlemeReduce / Injectcount, all?, any?, none?group_by ve partitionsort_by, min_by, max_byTekrar - Veri Hattı32B Diziler
2B Dizi Temelleri2B Elemanlara Erişim2B Diziler Üzerinde YinelemeYaygın 2B ÖrüntülerTekrar - Matris İşlemleri6Proje - Kütüphane Yöneticisi
Projeye Genel BakışKitap EkleKendi başına pratik yap: Online Ruby derleyicisi