Çarpım sırası
- Algoritmalar kursu
- İleri seviye
- Ders 21/56
- 4 dk
Matris çarpımında parantez sırasının maliyeti değiştirdiğini öğrenirsin.
Çarpım sırası
Matris çarpımı birleşmeli olsa da sıraya göre maliyet değişir. (A1·A2)·A3 ile A1·(A2·A3) farklı sayıda skaler çarpma gerektirir.
Amaç, en az skaler çarpma yapan parantezlemeyi bulmaktır. Bu, klasik bir dinamik programlama problemidir.
Boyut dizisi
Her matris bir boyut çiftiyle tanımlanır: Ai boyutu dims[i-1] × dims[i]. Örneğin dims = [10, 20, 30, 40] üç matris verir.
İki komşu matrisin çarpımı dims[i-1] × dims[i] × dims[i+1] skaler çarpma yapar. Bu, maliyetin temelidir.
Uygulama init_dims fonksiyonu
init_dims() yaz. [10, 20, 30, 40] dizisini döndür. print(init_dims()) ile yazdır.
Başlangıç kodu
def init_dims():
# Boyut dizisini döndürÖrnek çözüm
def init_dims():
# Boyut dizisini döndür
return [10, 20, 30, 40]
print(init_dims())Beklenen çıktı
[10, 20, 30, 40]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Üç matris için en iyi sıra neyi en aza indirir?
- Skaler çarpma sayısını Doğru cevap
- Matris boyutunu
- Bellek kullanımını
- Döngü sayısını
Açıklama: En iyi sıra skaler çarpma sayısını en aza indirir.
2 Boyut dizisi tanımı
dims = ____
dims = [10, 20, 30, 40]
Açıklama: [10, 20, 30, 40] doğru.
3 Çarpım sırası: kavramları eşleştir
| Kavram | Anlamı |
|---|---|
A1 |
10×20 |
A2 |
20×30 |
A3 |
30×40 |
dims |
Boyut dizisi |