تبلیغات
دانلود سورس پروژه های مختلف برنامه نویسی، آموزش برنامه نویسی - برنامه ی بدست آوردن تمام زیر مجموعه های n عضوی یک مجموعه
دانلود سورس پروژه های مختلف برنامه نویسی، آموزش برنامه نویسی
دانلود رایگان سورس پروژه
سایت برنامه نویسی تک کدر takcoder.ir


آموزش برنامه نویسی با استفاده از نوین ترین روش و ارائه پروژه های نمونه و مجموعه عظیم سورس کدهای آماده برای شما دوستان

مدیر سایت : Yahya Taherzadeh
نویسندگان
نظرسنجی
زبان برنامه نویسی مورد علاقه شما؟






برنامه ای برای بدست آوردن تمام زیر مجموعه های n عضوی یک مجموعه با استفاده از توابع در سی پلاس پلاس که می تواند شما را با خیلی از دستورات اساسی سی پلاس در کدنویسی آشنا میکند.

#include<iostream>
#include<conio.h>
#include<time.h>

using namespace std;

int **m;
long q=0;
long num=0;
long number=0;

long fact( long n )
{
    return ( n > 0 ? n*fact(n-1) : 1 );
}

long C( long n , long r )
{
    return ( fact(n)/(fact(r)*fact(n-r)) );
}

bool isPrinted(int *a, long n)
{
     bool is=true;
     for(long i=0;i<num;i++)
     {
             is=true;
             for(long j=0;j<n;j++)
             {
                      if(a[j]!=m[i][j])
                      {
                                is=false;
                      }
             }
             if(is)return true;
     }
     return false;
}

void print(int *a,long n)
{
     int swap=0;
     for(long i=0;i<n;i++)
     {
             for(long j=i;j<n;j++)
             {
                     if(a[j]<a[i])
                     {
                                  swap=a[i];
                                  a[i]=a[j];
                                  a[j]=swap;            
                     }
             }
     }
     if(!isPrinted(a,n))
     {
     number++;
     cout<<number<<".{";
     for(long i=0;i<n;i++)
     {
             cout<<a[i];
             m[q][i]=a[i];
             if(i!=n-1)
             {
                       cout<<",";
             }
     }
     q++;
     cout<<"}"<<endl;
     }
}

void printAll(int *a,int *b,long n,long k)
{
     if(q<num)
     {
     if(k==1)
     {
             print(a,n);
     }
     if(k==0)
     {
             print(a,n);
     }
     else if(k>0)
     {
          int *c, *d;
          long p=0;
          for(long j=0;j<k;j++)
          {
                  p=0;
                  c=new int[k-1];
                  for(long t=0;t<k;t++)
                  {
                          if(t!=j)
                          {
                                  c[p]=b[t];
                                  p++;
                          }
                  }
                  d=new int[n];
                  for(long i=-1;i<n;i++)
                  {
                          for(long t=0;t<n;t++)
                          {
                                  d[t]=a[t];
                          }
                          if(i!=-1)
                          {
                                   d[i]=b[j];
                          }
                          printAll(d,c,n,k-1);
                  }
          }
          delete c , d;
     }
     }
}

int main()
{
    time_t start , end;
    long n = 0 , k = 0;
    cout<<"Tedade ozv haye majmue:";
    cin>>n;
    cout<<"Tedade ozv haye zir majmue:";
    cin>>k;
    cout<<"Ozv haye majmue ra vared konid:"<<endl;
    int *a=new int[n];
    for(long i=0;i<n;i++)
    {
            cin>>a[i];
    }
    int *b=new int[k];
    int *c=new int[n-k];
    for(long i=0;i<n;i++)
    {
            if(i<k)
            {
                b[i]=a[i];
            }
            else
            {
                c[n-i-1]=a[i];
            }
    }
    system("cls");
    cout<<"S={";
    for( long i = 0 ; i < n ; i++ )
    {
         cout<<a[i];
         if( i != n-1 )
             cout<<",";
    }
    cout<<"}"<<endl;
    num=C(n,k);
    m=new int*[C(n,k)];
    for(long i=0;i<C(n,k);i++)
    {
            m[i]=new int[k];
    }
    printAll(b,c,k,n-k);
    delete a , b , c;
    getch();
    return 0;
}




نوع مطلب : آموزش، پروژه های رایگان، سی| سی پلاس پلاس، 
برچسب ها : مجموعه، زیر مجموعه، زیرمجموعه، زیر مجموعه n عضوی، محاسبه زیر مجموعه، collection، subset،
لینک های مرتبط :
Yahya Taherzadeh
سه شنبه 19 آذر 1392
دوشنبه 10 اردیبهشت 1397 02:02 ب.ظ
whoah this weblog is excellent i like reading your posts.
Stay up the good work! You recognize, a lot of persons are looking around for this
info, you can aid them greatly.
جمعه 6 مرداد 1396 06:03 ب.ظ
Quality content is the main to attract the people to pay a
visit the site, that's what this site is providing.
دوشنبه 5 تیر 1396 03:09 ق.ظ
These are in fact enormous ideas in regarding blogging.
You have touched some nice factors here. Any way keep up wrinting.
دوشنبه 1 خرداد 1396 04:44 ب.ظ
Hi there! I know this is kind of off topic but I was wondering which blog
platform are you using for this website? I'm getting tired of Wordpress because I've had problems with hackers and I'm looking at alternatives for another platform.
I would be awesome if you could point me in the direction of a good platform.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر




صفحات جانبی
آمار وبلاگ
تاییدیه پرداخت
تبلیغات
به سایت تک کدر خوش آمدید