Yazan : Şadi Evren ŞEKER

İstatistikte sıkça kullanılan binom dağılımı ile elde edilen ve üssel ifadelerin açılımında çarpan olarak kullanılan üçgenin ismidir. Üçgen basitçe aşağıdaki şekilde inşa edilebilir.

Her satır 1 ile başlayıp 1 ile biter

Her değer kendi üzerindeki iki değerin toplamına eşittir

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

Şeklinde giden üçgendir. Burada örneğin son satırın nasıl çıkarıldığına bakacak olursak bütün satırlar 1 ile başladığı için ilk değer 1’dir. Sonraki 4 değeri, bir üst satırdaki 1+3 işlemi ile bulunmuştur. 6 = 3 + 3 , 4 = 3+1 ve sondaki 1 ise yine kural gereği satır sonu olduğu için 1 olarak bulunmuştur.

Bu şekilde her değerin kendinden önceki değerlerin toplamı olarak düşünülmesi üçgenin özyineli (recursive) bir yapıya sahip olması anlamındadır. Yani üçgendeki bir satır (örneğin 100. Satır) kendinden önceki bütün satırların hesaplanmasını gerektirir (örneğin 99 satırın)

Bunun yerine binom dağılımından faydalanılabilir. Üçgendeki herhangi bir değer aşağıdaki kombinasyon formülü ile hesaplanabilir:

Burada n satır sayısı k ise terim sayısıdır. Burada terim ve satır sayısının 0’dan başladığına dikkat edilmesi gerekir. Örneğin bir önceki örnekte 4. Satırın hesaplanması için 3. Satırdaki değerleri kullandık. Bunun yerine 4. Satırdaki 2. Terimi isteseydik:

C(4,2) = 4! / ( 2! (4-2)!) = 4! / (2! 2!) = 6 olarak bulunur.

Satır başındaki bir değer için 0. Terime bakılmalıdır:

C(4,0) = 4! / (0! 4!) = 1 olarak bulunur.

Binom üçgeni daha önce de belirttiğimiz üzere üslü ifadelerin açılımında da kullanılır. Örneğin

(x + y)2 = x2 + 2 xy + y 2

Bu açılımdaki terimlerin çarpanlarına bakılırsa = 1 2 1 sayıları olduğu görülür.

Benzer şekilde

(x+y)4 = x4 + 4x3y + 6x2y2 + 4xy3 + xy4

Olarak yazılabilir ve buradaki çarpanlar da yine paskal üçgeninden (pascals triangle) çıkarılan 4. Satırdır

Yukarıdaki bu üçgeni ekrana basan bir kodu örneğin JAVA dilinde aşağıdaki şekilde kodlayabiliriz:

public
class binomUcgeni{

   public
   static
   void main(String args[]){

     int maxSatir=6;

     for(int n =0;n<=maxSatir;n++){

	for(int k=0;k<=n;k++){
       System.out.print(fact(n)/(fact(k)*fact(n-k))+" ");
      }
      System.out.println();
    }
 }

	public
	static
	double fact(double x){

		if ( x == 0 ) 

			return 1;

		if ( x == 1 ) 

			return 1;

		else

			return x* fact ( x-1);

      }

}

Kodun çalışan hali aşağıdaki şekildedir:

ÏϧÏ1.0
ÏϧÏ1.0 1.0
ÏϧÏ1.0 2.0 1.0
ÏϧÏ1.0 3.0 3.0 1.0
ÏϧÏ1.0 4.0 6.0 4.0 1.0
ÏϧÏ1.0 5.0 10.0 10.0 5.0 1.0
ÏϧÏ1.0 6.0 15.0 20.0 15.0 6.0 1.0

Yorumlar

  1. burak

    C(4,3) = 4! / ( 2! (4-2)!) = 4! / (2! 2!) = 6 olarak bulunur.

    bu satırda bir hata yok mu?
    C(4,2) olması gerekiyor sanırsam.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir