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: Rüştü Derici (rustuderici@gmail.com)
Date: Mon 08 Jan 2007 - 11:10:30 GMT


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


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

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.