Ana içeriğe atla

Aritmetik Ortalama, Algoritması ve Kullanım Alanları

Aritmetik Ortalama Algoritması
Aritmetik Ortalama
Matematikte bir çok ortalama hesaplama yöntemleri vardır. Bu hesaplama yöntemleri genelde birden çok sayının ortalamasını bulmak için kullanılır. Matematikte yoğun şekilde kullanılan ortalama yöntemlerine Aritmetik Ortalama, Ortanca, Geometrik Ortalama, Kuadratik Ortalama, Harmonik Ortalama, Genelleştirilmiş Ortalama örnek verilebilir. Bu yöntemlerin hepsi ayrı ayrı makalelerde incelenmiştir. Bu makalede ise Aritmetik ortalama incelenecektir.
Aritmetik ortalama matematiksel işlemlerde, istatiksel  hesaplamalarda, yapay zeka ile karar verme algoritmalarında, görüntü işleme algoritmalarında ve birçok yerde yoğun olarak kullanılan bir hesaplama yöntemidir. 

Aritmetik ortalamayı basitçe anlatacak olursak verilen sayıların toplamının sayıya bölümünden oluşur. Yandaki resim aritmetik ortalamayı anlamanız için çok yardımcı olacaktır.
Aritmetik ortalama konusu çok basit bir konu olduğu için buradan Algoritmasını yazma aşamasına geçebiliriz. Algoritmayı ilk önce sözde kod olarak yazarak başlayalım. Bu işlemden sonra ben C# programlama dilinde kodlamasını yapacağım. Siz kullandığınız veya öğrendiğiniz programlama diline göre uyarlama yapabilirsiniz.
Aritmetik Ortlama Algoritması.
1. Toplam Değişkeni Tanımla ve 0' a eşitle
2. Toplanan değer sayısı için Count değişkeni tanımla ve 0'a eşitle
3. Tüm sayıları Toplam değişkenine ekle ve her eklemede Count değerini artır.
4. Cevap değişkeni tanımla ve Toplam değişkenini Count değerine bölerek cevab oluştur.
Matematiksel olarak basit bir işlem olan Aritmetik işlemi 4 aşamada yapmamızın nedeni algoritmanın sözde olarak ifade edilmesi için de bir örnek teşkil etmesiydi. Bu işlemi aşağıdaki C# kodunda da göreceğiniz gibi tek satır da çözebilirsiniz. Ama anlattığım sözde kodda özellikle her işlem için değişken tanımalamanın algoritma yazma beceriniz artıracağını düşündüğüm için böyle yazmak istedim. 
C# progrmalama dilindeki örnek için gerçek bir hayattan örnek vererek devam etmek istiyorum. Örneğin görüntü işleme yöntemlerinden biri de threshold işlemidir. Threshold işlemi belirli bir eşik değerine göre resmi siyah beyaza dönüştürmek için kullanılan bir algoritmadır. Bu algoritma için en önemli noktalardan biri de eşik değerinin bulunmasıdır ve genelde bu işlem için ortalama çeşitlerinden bir kullanılır. Örnek olması açısından da bende Bitmap formatında olan bir resmi piksellerine ayırma ve bu piksellere göre aritmetik ortlamaya göre eşik değerinin belirlenmesi algoritmasını yazacağım. Algoritma içinde aynı zamanda ortanca, geometrik ortalama algoritmalarının da kullanımı görebilirsiniz. Yani bir eşik değerinin belirlenmesi için ortalama, ortanca ve geometrik orlamaların toplamanın aritmetik ortalaması kullanılmıştır.

         public Bitmap CustomThreshold(Bitmap image)
        {
            var bitmap = new Bitmap(image.Width, image.Height);
            int sum = 0;
            double geometrik = 1;
            List colors = new List();
            List colorsDouble = new List();
            for (int x = 0; x < image.Width; x++)
            {
                for (int y = 0; y < image.Height; y++)
                {
                    Color pixelColor = image.GetPixel(x, y);
                    int color = pixelColor.B;
                    sum += color;
                    colors.Add(color);
                    if (color == 0){
                        color = 1;
                    };
                    geometrik *= Math.Round(Math.Pow((double)color, 1.0 / (double)(image.Width * image.Height)), 12);
                }
            }
            int ortalama = sum / (image.Width * image.Height);
            int min = colors.Min();
            int max = colors.Max();
            int ortanca = (min + max) / 2;
            int final = (int)((double)(ortalama + ortanca+(int)geometrik) / 3);
            
            for (int x = 0; x < image.Width; x++)
            {
                for (int y = 0; y < image.Height; y++)
                {
                    Color pixelColor = image.GetPixel(x, y);
                    int color = pixelColor.B;
                    if (color < final)
                    {
                        bitmap.SetPixel(x, y, Color.FromArgb(pixelColor.A, 255, 255, 255));
                    }
                    else
                    {
                        bitmap.SetPixel(x, y, Color.FromArgb(pixelColor.A, 0, 0, 0));
                    }
                }
            }
            return bitmap;
        }

Verdiğim örneğin yeni başlayan programcılar için biraz zor olacağını düşünüyorum. Ama buna rağmen aynı zamanda Aritmetik ortalama algoritmasının basit olmasına rağmen kullanıldığına ne kadar faydalı olabileceğini göstermek için bu örneği vermek istedim.
Umarım yazım faydalı olmuştur. Konuyla alakalı sorularınız olursa lütfen sormaktan çekinmeyin. En kısa sürede yanıtlamaya çalışacağım...

Yorumlar

Bu blogdaki popüler yayınlar

Medyan (Ortanca) Nedir? Nasıl Hesaplanır? Nerelerde Kullanılır?

Medyan işlemi olasılık hesaplamalarında sıkça kullanılan bir sayı dizisinin ortalamasını hesaplamak için alternatif yöntemlerden bir tanesidir. Ortanca medyan işleminin diğer adıdır. Matematiksel olarak medyan işlemi bir sayı dizisi küçükten büyüğe sıralayarak ortada kalan elemanı medyan değeri olarak belirleme işlemidir. Örnek verecek olursak: 2, 1, 5, 4, 5, 1, 2, 3, 5 serisi sıralanırsa 1, 1, 2, 2, 3, 4, 5, 5, 5 serisi elde edilir. Bu seri 9 elemanlı olduğundan ortadaki, yani 5. eleman (medyan) olacaktır. 5. eleman 3 sayısıdır. Yani ortanca değeri 3'dür Eleman sayısı tek sayı olan bir seride medyan değerin sırasının hesaplaması şu şekilde formüle edilir. Medyanın Sırası = (Eleman Sayısı + 1) / 2 Bu formülü yukarıdaki örneği uygulayacak olursak; Medyanın Sırası = (9 + 1) / 2 = 5 Veri serisi eleman sayısı bir çift sayı ise bu durumda serinin 2 medyanı olacaktır. Örneğin 2, 1, 5, 4, 5, 1, 2, 3, 5, 4 serisi sıralandığında 1, 1, 2, 2, 3, 4, 4, 5, 5, 5 s

Ağaçlar Kireçle veya Badana İle Neden Boyanır?

Ağaçlar kireçle boyanmasının veya badana yapılmasının hem çevreye hem de doğaya, ağaçlara faydası var. Bu makalede bu geleneği enine boyuna tartışmaya çalıştık. Ağaca zarar veren mikrop ve bakterileri öldürür. Ağacı çok aşarı soğuk havalarda ve çok aşırı sıcak havalarda korur. Ağacın çürümesini ve kurtlanmasını önler. Ağacın gövdesinin alabileceği zararları en az düzeyde düşürmeyi sağlar. Hoş, güzel, hijyenik, temiz pırıl pırıl bir görüntü oluşturur. Ayrıca çok sıcak havalarda da ağacı yanmaya karşı korumak. En büyük etkisi soğuk havalarda ağacı don vurmalarına karşı korumak . Küresel ısınma göz önüne alındığında mevsim değişiklikleri ani don, ani ısı artışları ve azalışları sonucunun doğuracağı etkenler için yararlı etkin bir yöntem. Gövdeden obur dalların çıkmasını azaltmak için sürülür. Kireçleme ağaçları güneş yanığından korumak için yapılıyor. Ağaçlar da güneşten yanabiliyorlar. Bu arada odun dokudaki gözenekleri doldurarak kapattığı için, zararlıların yuv

Azərbaycan Dilində Vurğu Qəbul Etmeyen Şekilçiler

Sözlərdə hecalardan birinin digərlərinə nisbətən daha qüvvətli deyilməsinə heca vurğusu deyilir. Üzərinə vurğu düşən hecaya isə vurğulu heca deyilir. Azərbaycan dilində vurğu adətən söz sonuna düşür. Söz şəkilçi qəbul ederkən vurğu adətən şəkilçinin üzərinə keçir. Məsələn: çiç ə k - çiçəkl ə r - çiçəklərd ə n məkt ə b - məktəbl i - məktəblil ə r - məktəblilərd ə n Buna baxmayaraq dilimizdə bir sıra şəkilçilər var ki onlar vurğu qebul etmirlər. Bu məqalədə Azərbaycan dilində vurğu qebul etməyən şəkilçilər incələnəcək ve bu şekilçilərin hansı hallarda vurğu qebul edib hansı hallarda vurğu qebul etmediyi araşdırılacaqdır. Eyni zamanda bildirmək istəyirəm ki vurğu ilə bağlı daha geniş və ətraflı məlumat üçün Azərbaycan Dilində Vurğunun Praktik Məsələləri adlı məqaləyə də nəzər yetirə bilərsiniz.  1. İsimlərdəki şəxs(xəbərlik) şəkilçiləri Məsələn: müəli'məm müəli'msən müəli'mdir müəli'mik müəli'msiniz müəli'mdirlər Qeyd: -dır4