selam,

sehirleri karsilastirmak icin onlara 20 uzerinden birer not atamak istiyorum diyelim. bunun icin de bir suru ozellik siralandigini farz edelim: trafik sorunu, muzeleri vs.

her ozellik icin de "farkli" not araliklari olsun. bir tanesi icin 0-1, digeri icin 0-5, bir digeri icin 0-3 vs.

her ozelligin toplam not uzerinde oynadigi etkilerini de (agirliklari) atiyorum.

bu durumda ne gibi bir fonksiyon yazmam gerekir ki 20 uzerinden her birine not atayabileyim?

kolay anlatabilmeniz icin ornek olarak 3 ozellik olsun:

A ozelligi: agirlik 0.20, not 0-5 arasi
B ozelligi: agirlik 0.35, not 0-1 arasi
C ozelligi: agirlik 0.45, not 0-3 arasi


tesekkurler

 

Zaten ağırlık verdiğiniz bir şeye bir de not aralığı vermenizin nedenini bilmiyorum. Eğer çok gerekli değilse belki o uygulamadan vazgeçersiniz. Neyse sizin verdiğiniz örnek üzerinden gideyim ben.
Sizin verdiğiniz özellik ağırlık ve not bilgisine göre iki şehir sallayım yazıcam

öncelikle sizin veridğiniz puanlara göre bir şehrin maksimum puanı kaç olabilir bakalım:

0.2 x 5 + 0.35 x 1+ 0.45 x 3= 2.7

bir şehrin tüm puanları tamsa 2.7 puan alır.

eğer şehrin aldığı puanı 2.7'ye bölüm 20 ile çarparsaız notu 20 üzerinden hesaplamış olursunuz.

A | B | C
------------------------------------
Münih | 3 | 0.2 | 3 = 0.6 + 0.07 + 1.35 = 2.02
------------------------------------
Köln | 4 | 1 | 0 = 0.8 + 0.35 + 0= 1.35


münih'in puanını 20lik sisteme çevirirsek 2.02/2.7 * 20=14.96

Köln'ü çevirirsek 1.35/2.7 *20= 10

formülü genelleştirirsek

2.7'ye bölüp 20 ile çarpmak demek kısaca (20/2.7'den 7.4074 ile çarpmak demek)
A,B,C şehrin özellilerinin notunu göstermek üzere
Şehir Puanı= (A*0.2 + B*0.35 + C*0.45)*7.4074

godsparticle
1

mobil görünümden çık