CodeBlanks Logo Icon CodeBlanks

Çarpım sırası

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

solution.py
def init_dims():
    # Boyut dizisini döndür

Örnek çözüm

solution.py
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ı

Soru
dims = ____
Cevap
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

İleri seviye bölümündeki tüm dersler