می خواستم برنامه ای بنویسم که زیر مجموعه های یک مجموعه را چاپ کند ولی هیچ اطلاعی از الگوریتمش ندارم لطفاً اگر می توانید کمکم کنید
مثلاً : {a,b,c}
حل : {} و {a},{c}, {b} , {ab} , {ac} , {cb} , {abc
با تشکر
می خواستم برنامه ای بنویسم که زیر مجموعه های یک مجموعه را چاپ کند ولی هیچ اطلاعی از الگوریتمش ندارم لطفاً اگر می توانید کمکم کنید
مثلاً : {a,b,c}
حل : {} و {a},{c}, {b} , {ab} , {ac} , {cb} , {abc
با تشکر
سلام مهتاب جان
یه کدی دارم که بهش یه عدد می دی تمام زیر مجموعه های 1 تا اون عدد را چاپ می کنه اگه تونستی به اون چیزی که می خوای تبدیلش کنی که هیچ اگه نتونستی به ایمیل یا تو انجمن پیغام بذار برات یه فکری کنم چون الان خیلی سرم شلوغه
موفق باشی
mostafa_aa
#include <iostream.h>
#include <conio.h>
int main()
{
int num ;
cout<<"\n Enter your number ( must be less than 15 ) : ";
while( cin>>num , num<0 || num>14 )
cout<<" ERROR!\n Please enter your number ( just less than 15 )";
int i ;
int n_set=1,n=0;
for( i = 1 ; i <= num ; i++ )
n_set*=2;
cout<<"\n "<<n_set<<" subset :\n\n";
for( i = 0 ; i < n_set ; i++ )
{
int one = 1;
cout<<" { ";
for( int j = 0 ; j < num ; j++ ){
if( one & i )
cout<<(j+1)<<" , ";
one=one<<1;
}
cout<<"\b\b }\n";
}
return 0;
}
سلام مصطفی جان
خوشحال می شم اگه برنامه را به صورت کامل بفرستی آخه منم همین مشکل را دارم
با تشکر
البته اگه کسی می تونه از راه تابع بازگشتی
سلام،
یه شبه کد برات نوشتم:
subset(set s)
{
if(s is null) return;
foreach(member m in s){
print m, subset(s-m);
print subset(s-m);
}
}
البته چون سریع نوشتم، ممکنه باگ داشته باشه.
PS: به درخواست taha_htb عزیز، یکم توضیحات درباره این شبه کد اضافه میکنم:
اسم تابع بازگشتی: subset
پارامتر ورودی: یک مجموعه به نام s
s is null: یعنی اگر s هیچ عضوی نداره
(foreach(member m in s: یعنی این حلقه رو برای تمام اعضای s اجرا کن و در هر اجرا اسم عضوی که انتخاب شده m باشه.
s-m: مجموعه s که از توش عضو m حذف شده.
اگر جای دیگه ای هم ابهام داره بگید.
آخرین ویرایش به وسیله someCoder : جمعه 25 خرداد 1386 در 00:07 صبح دلیل: اضافه کردن توضیحات
somecoder عزیز با تشکر از ک مفیدت و توضیحات شما.برنامه رو کامل کردم جواب داد