Program Yazdırmak
-
İstediğim programdan ne beklediğimi bir örnek ile açıklayayım: Elimde 11 kişilik bir grup var. Bunlar birbirleri ile teke tek kavga ediyorlar. Ben de bu kişileri izleyerek bir hiyerarşi sırası oluşturuyorum, yani sıralamada 1. olan kişi diğer 10 kişiyi dövmüş sayılıyor, 2. kişi altındaki 9 kişiyi dövmüş sayılıyor. Fakat hiyerarşi bu kadar doğrusal değil. Şöyle ki, 1. kişi 10 kişiyi değil de 9 kişiyi dövüyor ve örneğin 7. sıradaki kişi gidiyor 1. sıradakini dövüyor, 9. sıradaki 2.'yi dövüyor. Yani grupta böyle karışıklıklar var. Benim istediğim, ben programa bu kişi bunu dövmüştür diyeceğim, program dövene bir puan vericek. Takdir edersiniz ki hepsini döven en çok puana sahip olacak, fakat aralarda 1.'yi döven olursa bunların da dövdüğü kişinin hiyerarşideki sıralamasına göre artı bir puan daha kazanacak. Puanlama için örnek vericek olursam, herhangi birini döven 10 puan alıcak, orta sıralardan 1.'yi döven 5 puan alacak, 2.'yi döven 4 puan alacak. Yani puanlama ile sıralama yapmak için puanlar ya ondalıklı ya da 2 basamaklı olacak.
Umarım anlatabilmişimdir. Ben bu işi yaparım diyen arkadaşlar özel mesaj gönderirlerse, onlara bir örnek göndererek derdimi daha iyi anlatabilirim.
Saygılar.
-
örnek gönder hocam anlamadım ne yazık ki !
-

Bu tabloda üstte koyu renkliler, gruptaki kişilerin numaraları. Yani 21 numaralı kişi 33-56-62 ve 77 sırt numaralı kişileri dövmüş. Böyle bir tablo oluşturduktan sonra 1-0 arasında puanlama yaparak en sağdaki 2 sütunda gördüğünüz puanlama ve sıralama çıkıyor. Sorun şu ki, 99, sıralamada 77'den üstte olmasına rağmen 77 numaralı kişinin 99 numaralı kişiyi dövdüğünü görüyoruz. Yani benim elimdeki mevcut hesaplama sistemimle bu karışıklığı sıralayamıyorum. Yani bakıldığında 77-46-21 ve 56 numaralı kişiler aynı puanı almışlar, dolayısıyla bunların arasındaki sıralamayı hesaplayamıyorum. Şimdi biraz daha açıklayıcı olmuştur umarım.
Programlama işinden pek anlamam, belki de isteğim yapılabilir bir şey değildir. Öyle bile olsa bana bildirirseniz sevinirim.
-
Hocam diyelim 5. olan adam 1. adamı dövüyorsa 1. olduğunu nereden tespit edip ona göre puan verdirticez ? En baştan belirli bir puanlama miktarları adamlara aktarmak gerekli ki ona göre birbiryle dövüşünce hanelerine puanlar o değerlere göre aktarılsın.
-
Verdiğim örnekte tam baskın bir birinci yok. Birinci olarak atfedilen 16 numara, 62 tarafından dövülmüş fakat 62 en fazla sayıda adamı dövdüğü için 1. kabul ediliyor.
-
edit. yanlış anlaşılmış
fakat bir çözüm istersen bir adamın puanı = (dövdüğü adam sayısı) * (katsayı) + (mağlup ettiği adamın dövdüğü toplam adam sayısı)
bu şekilde hesaplamak üst sıradan birini dövdüğünde daha fazla puan gelmesi hiyerarşinin daha düzgün oluşması demek
-
black_lord bunu yazdı:
-----------------------------edit. yanlış anlaşılmış
fakat bir çözüm istersen bir adamın puanı = (dövdüğü adam sayısı) * (katsayı) + (mağlup ettiği adamın dövdüğü toplam adam sayısı)
bu şekilde hesaplamak üst sıradan birini dövdüğünde daha fazla puan gelmesi hiyerarşinin daha düzgün oluşması demek
-----------------------------Fikriniz için teşekkür ederim.
Belirttiğiniz formül ile deneme yaptım, yine aynı puana sahip kişiler oluşabiliyor. Biraz daha kompleks bir formüle ihtiyacım var galiba.
-
dövüş karşılışmalarının hepsi aynı anda yapılmıyorsa sorun yok. Kazanan o an itibari ile rakibinin durumuna göre puan alır, rakibi birkaç maç sonra sıralamada faeklı yerde de olsa farketmez kavga anındaki sıralamalar dikkate alınır. Eğer aynı anda birden çok maç yapılıyorsa sıralamadaki yerler sabit olmayacağı için sorun olur. Rakibe göre puanllama çok kolay yoldan halledilebilir, en basit kısmı bu. Döğüşcü sayısı bellidir sonuçta. Diyelim ki 70 kişi var. Bu durumda maçı kaybettiğinde en çok puan verecek döğüşcü 1. sıradaki olacaksa bunun vereceği puan 70 olur. ikinci sıradaki kaybettiğinde 69 puan kazandırır.
