Re: [Linux-programlama] Rekürsif fonksiyon olmadan kombinasyon

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Serbulent UNSAL (serbulentu@gmail.com)
Date: Tue 09 Jan 2007 - 06:01:26 GMT


Yanıt için teşekkürler önceden belli olmayan bir n değerinden kasıt n
ve r sayılarının dışardan girilebilmesi ( buna değiştirilebilmesi de
denebilir ) idi.

Yani n in 2 li kombinasyonları için bir kod yazmak çok zor değil zaten
ama burada r değişken olunca özyinelemeli algoritma kullanmadan
düşünmek biraz zor gelmişti.

Kodu deneyeceğim. Teşekkürler iyi çalışmalar.

Serbülent

08.01.2007 tarihinde Rüştü Derici <rustuderici@gmail.com> yazmış:
> recursion kullanmayacağım diyorsan...ki sanırım asıl soru bu ... bir
> while döngüsü ile
> iteratif olarak bunu yapabilirsin.ama önceden belli olmayan bir n
> değerinin kombinasyonu
> meselesi havada bir cümle ... neticede kombinasyon(n,r)=faktoriyel(n)
> / (faktoriyel(r) * faktoriyel(n-r)) gibi bir fonksyon değilmidir
> bunun da sadelesmis tanımı :
>
> n*(n-1)*....(n-r+1) / faktoriyel(r)
> ise
> senin herhalükarda n sayısını biliyor olman gerekmez mi
>
> aşağıda sonsuz kez dönecek olan bir faktöriyel fonksyonu var
>
> bu işini görür sanırım.
>
>
> sonuc=1;
> i=1
> q=0;
>
> while(q==0)
> {
> sonuc=sonuc*i;
> printf("%d ! = %d \n",i,sonuc); //
> i++;
>
> //burayada q parametresini 0 dan farklı yapacak bir durum yaratılır.
> //senin isteğine kalmış.
> //ister karakter okutursun.
> //istersen bir dosyadan bir parametre okutursun
> //istersen sonuc değişkeni atadığın tipin değer alanı dışına çıkana
> kadar bu döngü döner..
> //sonra hata vererek program sonlanır...
> //secenekler çoğaltılabilir..
> }
>
>
> ************
> bunun çıktısı şöyle olacaktır.
> 1! = 1
> 2! = 2
> 3! = 6
> .
> .
> .
>
>
> eğer derdimiz sıralama algoritması gelistirmek olsaydi.
> burada iteratif yada recursive algoritmalar kullanmak mesele değil
> sıralatma algoritmasını geliştirmeniz gerekmekte..
> yani 2 li kombinasyon için istenen çıktı
>
> ab
> ac
> ad
> ae
> bc
> bd
> be
> cd
> .
> .
> .
> gibi gideceği için
> dizi[5]={'a','b','c','d','e'};
> com(n,r) // n 'in r/li kombinasyonu için..
> n=5; //
> r=2; // r <= n olmak kaydıyla...
> for i= 0 to n
> for j= (i+1) to (n-r+1)
> print dizi[i] , dizi[j]
> end
> end
>
> gibi bir algoritmada sana bu sıralamayı verecektir..
> sevgiler,
> Rüştü
>
>
> On 1/8/07, recep yagci <ryagci23@gmail.com> wrote:
> > recursion simulation
> >
> > http://www.google.com.tr/search?hl=tr&q=recursion+simulation&meta=
> >
> >
> > On 1/8/07, Serbulent UNSAL <serbulentu@gmail.com> wrote:
> > >
> > > Merhaba,
> > >
> > > Bilindiği gibi kombinasyon ve permütasyon hesaplarında ( abcde gibi
> > > bir grubun n li kombinasyonlarını bulmak isterken misal )
> > > özyinelemeli yaklaşımlar kullanılır.
> > >
> > > Benim merak ettiğim önceden belli olmayan n elemanlı bir kümenin r
> > > elemanlı kombinasyonunu bulmak için özyinelemeli algoritmalar dışında
> > > çözümler var mıdır ?
> > >
> > > Serbülent
> > >
> > > _______________________________________________
> > > Linux-programlama mailing list
> > > Linux-programlama@liste.linux.org.tr
> > >
> > http://liste.linux.org.tr/mailman/listinfo/linux-programlama
> > >
> > >
> > >
> >
> >
> > _______________________________________________
> > Linux-programlama mailing list
> > Linux-programlama@liste.linux.org.tr
> > http://liste.linux.org.tr/mailman/listinfo/linux-programlama
> >
> >
> >
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>
>

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.