C++ Da Kombinasyon İşlemi
-
Bildiginiz kombinasyon matematik 2 de ki örneğin 5in 3lüsü = 5*4*3/3*2*1 böyle cözerdık baska çözum seklıde olabilir bunu if,else,for,while dan bırını veya hepsını kullanarak nazıl yazarız faktoriyel işlemi yaprıtabılıyorum fakat kombinasyonu yapamadım sımdıden tesekkurler.
Not: sadece for , while döngüsü kullanılacak harici komut kullanılmycak .
-
bu iki fonksionu int main de kullanarak yapabilirsin hocam kodları bi incele
int faktoriyel(int a)
{
int fakt=1;
int r=1;
while( r<=a) {
fakt=fakt*r;
r=r+1;
}
return fakt;
}
int kombinasyon(int a,int b)
{
return faktoriyel(a)/(faktoriyel(a-b) * faktoriyel(b));
}
-
Int x,y,z;
X=5;Z=1;
For(y=0;y<3;y++
z=x*z;
x--;}
Olma mi -
ZoRKaYa bunu yazdı:
-----------------------------
Int x,y,z;
X=5;Z=1;
For(y=0;yz=x*z;
x--;}
Olma mi
-----------------------------genel bisey olacak senınkısı sadece verdıgım ornek ıcın :)
manyaki senın yazdklarını anlamadım hocam , heralde bıraz daha ogrenmem gereklı ama bildiklerimle yazabılırmıyım dıye dusunmustum yazılması lazım :S
-
Bosluk bunu yazdı:
-----------------------------ZoRKaYa bunu yazdı:
-----------------------------
Int x,y,z;
X=5;Z=1;
For(y=0;yz=x*z;
x--;}
Olma mi
-----------------------------genel bisey olacak senınkısı sadece verdıgım ornek ıcın :)
manyaki senın yazdklarını anlamadım hocam , heralde bıraz daha ogrenmem gereklı ama bildiklerimle yazabılırmıyım dıye dusunmustum yazılması lazım :S
-----------------------------
Hocam telden yazilmiyo ya butun yazdiklarim birbirine girmis :/ -
bu olmuşmu bi bak :
------------------------------------------------------
int i , j , n , c , r , a , b , sonuc ;
n=StrToFloat(Edit1->Text);;
c=StrToFloat(Edit2->Text);;
r=n-c+1;
a=1;
b=1;
for (i=r;i<=n;i++){
a=a*i;
}
for (j=1;j<=c;j++){
b=b*j;
}
sonuc=a/b;
Edit3->Text=FloatToStr(sonuc);-----------------------------------------------------------
-
@manyaki hocam seninki uzun uzun konbinasyon islemi arkadas kisasini sormus yani faktoriyelvolan degil dr 5*4*3/3*2*1 seklinde
-
ZoRKaYa bunu yazdı:
-----------------------------
@manyaki hocam seninki uzun uzun konbinasyon islemi arkadas kisasini sormus yani faktoriyelvolan degil dr 5*4*3/3*2*1 seklinde
-----------------------------yok hocam faktoriyel üzerinden gittim sadece. tam şekliyle yazıyım bi ama comile etme şansım yok şuan olduğum pc de siz denersiniz.
#include <stdio.h>
#include <conio.h>
int faktoriyel(int a)
{
int fakt=1;
int r=1;
while( r<=a) {
fakt=fakt*r;
r=r+1;
}
return fakt;
}
int kombinasyon(int a,int b)
{
return faktoriyel(a)/(faktoriyel(a-b) * faktoriyel(b));
}
int main(){
int x,y,komb;
printf("iki sayı girin");
scanf("%d%d",&x,&y);
komb=kombinasyon(x,y);
printf("kombinasyon: %d",komb);
getch();
return 0;
}
-
#include <iostream>
#include <stdlib.h>
#include <conio.h>
using namespace std ;
int main(int argc, char *argv[]){
int x,y,fakt=1,fakt2=1,fakt3=1,i,a,j,k;
cout<<"\niki sayi giriniz: ";
cin>>x>>y;
for (i=1; i<=x; i++){
fakt=fakt*i;
}
for(j=1; j<=y; j++)
{fakt2=fakt2*j;}
k=x-y;
for(a=1; a<=k; a++)
fakt3=fakt3*a;
cout<<"kombinasyon:"<< fakt/(fakt2*fakt3);
getch();
return 0;
}-----------------------------------------
Sonunda yazdım manyaki hocamın teknıgındende bırseyler ogrendım saolasın
-
manyaki bunu yazdı:
-----------------------------bu iki fonksionu int main de kullanarak yapabilirsin hocam kodları bi incele
int faktoriyel(int a)
{
int fakt=1;
int r=1;
while( r
fakt=fakt*r;
r=r+1;
}
return fakt;
}
int kombinasyon(int a,int b)
{
return faktoriyel(a)/(faktoriyel(a-b) * faktoriyel(b));
}
-----------------------------ben de yazıyım bi faydam olsun diye girmistim ama adam cok guzel ve acık yazmıs gayet..
-
Sonuçta bir matematik formülünün uygulanmasıyla sonuca gidilmiş güzel ...
Fakat Formüle daynmayan sezgisel bir yöntem nasıl tasarlanır onun üzerinde de biraz düşünsek...
Yani yine 5 elemanlı bir kümenin 2 elemanlı alt kümelerini oluşturtsak ve ancak "şu" kadar alt kümeninin olabileceğine
Programın karar vermesini nasıl sağlayabilirz?