Soru sorMarkov matrisi hesaplama
Yigit tarafından 3 yıl önce soruldu

Elemanlari 0 ile 0.2 arasinda giden rastgele bir kare matris olusturdum bu matrisi bir markov matrise çevirmek istiyorum yani her satırın toplamı bir olmalı. Belirli elemanlar üzerinde satır elemanlarına değer atayarak bunu yapabiliyorum ama jenerik olarak yani her kod çalıştırıldığında rastgele gelen matriste aynı işlemi yapan bir kodu nasıl yazacağımı bilmiyorum. Nasıl bir kod bloku kullanmalıyım? 

6 Cevap
Caglar Yönetici tarafından 3 yıl önce cevaplandı

Markov matris nedir bilmiyorum ancak, satırdaki tüm elemanları toplayıp, her değeri toplama bölersek, bu sefer toplamları bir olacaktır. Bu işinizi görür mü?

Yigit tarafından 3 yıl önce cevaplandı

Sanırım hayır cünkü satırın toplamını bir istiyor örneğin rastgele calıştırdım ve 6×6 bir matris elde ettim
0.1 0.09 0.18 0.13 0.15 0.16
biciminde bir satır geldi satırın toplami 0.81 , elemanlara elemanlarin degeri 0.2 yi gecmeden degerler atayip satırın toplamını bir yapmaliyiz. 
0.19 0.19 0.18 0.13 0.15 0.16
En kucuk elemanlara deger atayarak satiri bir yaptik suan.
Benim sorunum bunu koda dökememek :")
If-else ve döngülerden faydalanmam mi gerekiyor ornek bir kod yazabilir misiniz acaba ?
 

Caglar Yönetici tarafından 3 yıl önce cevaplandı

Dediğim gibi oranlama yaparsak, 0.2'yi geçenler olacaktır. O zaman bu noktada, hangi mantıkla bu işi yapacağınızı netleştirmeniz lazım. Toplam 1'den fazlaysa hepsi toplam aynı olacak oranda küçültmek, aksi taktirde sırayla tüm değerleri 0.19'a mı arttırmak istersiniz?

Yigit tarafından 3 yıl önce cevaplandı

0.09 a attirmak isterim tüm degerleri 

Yigit tarafından 3 yıl önce cevaplandı

Bir fikriniz var mi acaba  

Caglar Yönetici tarafından 3 yıl önce cevaplandı

Merhaba, 
Yukarida yazdigim islemin kodu yazilabilir. Ama mantığınızda açıklar var. 0.09'a tamamladığımızda dahi toplam bir olmazsa ne yapılacak?