SORU
14 Mart 2011, PAZARTESİ


Nasıl bilinen min ve max değeri ile sayı aralığını küçültün

Sayılar bir dizi çekmek ve değerleri bir dizi sığdırmak için küçültün nasıl anlamaya çalışıyorum. Bunu istemelerinin sebebi, java swing bir jpanel içinde elips çizmek için çalışıyorum. Her elipsin genişliği ve yüksekliği 1-30 demek aralığında olmak istiyorum. Benim veri kümesinden en küçük ve en büyük değerleri bulmak yöntemler var, ama min ve max kadar zamanı olmayacak. Bir kolay yolu bunu yapmak için vardır?

CEVAP
14 Mart 2011, PAZARTESİ


Hadi [a,b] 4 ** çeşitlilikte. Karşılayan (sürekli) fonksiyonu arıyorsunuz

f(min) = a
f(max) = b

Sizin durumunuzda 1 b olurdu 30, ama daha basit bir şey ile başlayın ve ne kadar geniş bir alana [min,max] göster çalışın olur [0,1].

Bir işlev min koyarak ve 0 buradan yapılabilir

f(x) = x - min   ===>   f(min) = min - min = 0

Bizim istediğimiz neredeyse. Ama max koyarak bizi biz aslında 1 istediğinizde max - min verecek. Bu ölçek için elde ederiz:

        x - min                                  max - min
f(x) = ---------   ===>   f(min) = 0;  f(max) =  --------- = 1
       max - min                                 max - min

tam da bizim istediğimiz gibi. Bir tercüman ve bir Ölçekleme yapmamız gerekiyor. Şimdi bunun yerine a b, keyfi değerleri almak istiyorsak biraz daha karmaşık ihtiyacımız var:

       (b-a)(x - min)
f(x) = --------------    a
          max - min

x min a verir ve max koyarak koyarak b veren doğrulayabilirsiniz.

Ayrıca (b-a)/(max-min) yeni aralığın boyutunu ve orijinal aralığının büyüklüğü arasında bir ölçeklendirme faktörü olduğunu fark edebilirsiniz. Yani gerçekten ilk -min doğru faktörle Ölçekleme x yazılı ve sonra a yeni asgari değer geri çevriliyor.

Bu yardımcı olur umarım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cekehechu

    cekehechu

    20 HAZİRAN 2006
  • Jonathan Leack

    Jonathan Lea

    26 ŞUBAT 2007
  • TecnoTutosPC

    TecnoTutosPC

    19 Kasım 2012