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?
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ü?
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 ?
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?
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?