merhaba
şimdi anladığım kadarıyla
3 4 2
8 9 1
7 8 5
matrisinde bahsettiğin gibi satır taramasıyla
8+8+2= 18 sunucuna varıyorsun ama bunun aslında en küçük toplam olmadığını söylüyorsun aslında en küçük toplamın
4+1+7= 12 olması gerektiğini söylüyorsun.
şimdi bilgisayar gibi değilde insan gibi düşünürsek, şu küçük matriste aslında istediğimiz her sütündaki en küçük değeri almak oluyor..
öyleyse tarama işlemini satır değilde sütün baz alınarak yapmak mantıklı geliyor.
şöyle kafadan bir matris sallıyacam bakalım düşündüğüm olacak mı?
Kod: Tümünü seç
01 02 03 04 05
----------------------------------------
01| 12 33 10 90 48
|
02| 20 21 22 77 28
|
03| 66 54 18 91 56
|
04| 71 42 68 95 11
|
05| 13 34 12 11 22
dediğim mantıkla her sütündaki en küçük değeri alırsak.
Kod: Tümünü seç
1. sütünda : 12 (1,1)
2. sütünda : 21 (2,2)
3. sütünda : 10 (1,3)
4. sütünda : 11 (5,4)
5. sütünda : 11 (4,5)
12+21+10+11+11 = 65
olacaktır.. yani doğrusu bu mu? tabi 1. satırdan iki değer elde edilmş oldu bu durumda, bu bir hataya sebep verecek mi? eğer evet hataya sebep verecek ise bu durumda 3. satırdan bilgi alınmadığını görüyoruz. Bu durumda 1. satırdan alınan 12 yerine 3. satırdan 18. almak mı doğru olacaktır..
(edit: burda kafayı sıyırdım düzeltemiyorum.. siz kendi mantığınızı geliştirin
)
son dediğim gibi olacaksa, burada 3. satır yedek satır olarak bir kenara kaydedilecek, çünkü eğer alınan değerlerde aynı satırdan alınmış değerler var ise alınan aynı satırdaki (bu örnekte 1. satırı kastediyorum) değerlerin en büyüğü (yani 1. satırdaki 12 değeri) iptal edilip yedek satırdaki en küçük değeri alacağız. vs. vs.
şimdi..
1. önce sütün taraması yapılacak. en küçük olanlar alınacak.
2. hiç bir değer alınmamış satırlar bir yere not edilecek.
3. sütün taraması sonucunda aynı satırdan alınmış değerler var ise, sırasıyla en büyüğünden başlıyarak iptal edilip, kenara not eidlen satırlardaki en küçük ile yer değişecektir.
çözümü umarım anlatabilmişimdir. görüldüğü sorması kadar izah etmeside zor.
şimdi düşündükçe akla yeni fikirler geliyor..
1. sütün taraması yap.
2. satır taraması yap.
3. elde edilen yeni matrisi üst üste koy. çakışma olmayan kısımlar doğru olanlardır..
Aslında burada insan gibi düşünerek (komiklik olsun diye söylemiyorum) yani biz bir matrisi manuel olarak bakıpta nasıl çözümleyebiliyorsak problemede öyle yaklaşırsak daha kolay çözüleceğini biliyorum..
kolay gelsin...