PDA

View Full Version : سوال: {راهنمایی در برنامه} ترکیب r از n



Mr.Digital
پنج شنبه 20 فروردین 1388, 12:07 عصر
سلام به همگی، باید برنامه ای بنویسم که اعداد n و r را دریافت کنه و تمام r ترکیب های مجموعه {1،2،3... n} را تولید و چاپ کنه. اما دقیقا نمیدونم چیکار باید بکنم.
ممنون میشم کمکم کنید. فکر میکنم با این فرمول ریاضی باید نوشته بشه: n! / (r!(n-r)!)l

mabbaszadegan
پنج شنبه 20 فروردین 1388, 12:24 عصر
از تابع استفاده کن
یه تابع تعریف کن که برات فاکتوریل رو حساب کنه ، بعد با استفاده از تابعی که تعریف کردی میتونی این فرمول و حتی سخت تر از اینا رو بدست بیاری
برای اطلاع بیشتر میتونی به سایت من مراجعه کنی

kashaneh
پنج شنبه 20 فروردین 1388, 12:36 عصر
دوست عزیز به عنوان راهنمایی باید بگم جهت سادگی کار شما نیاز به یک تابع فرعی با نام مثلا Fact خواهید داشت که یک عدد صحیح را به عنوان ورودی گرفته و فاکتوریل آنرا محاسبه کرده و بر میگرداند. شما برای حل این ترکیب (طبق فرمول ریاضی آن که شما هم گفتید) نیار به محاسبه 3 مقدار مختلف فاکتوریل دارید، پس اهمیت تابع فرعی که گفتم در اینجاست و آن ساده کردن کار شماست... حال تنها چیزی که باقی می ماند یک عمل تقسیم و یک عمل ضرب است که راهنمایی!! ندارد... موفق باشی

mabbaszadegan
پنج شنبه 20 فروردین 1388, 14:44 عصر
سلام دوست عزیز ، دو تا کدی رو که خواسته بودید آماده شد
کدی که خواسته بودید به صورت تصادفی عددی رو چاپ کنه:


#include<iostream>
#include<stdlib.h>
using namespace std;
int main(){
int n;
char test;
do {
n=rand();
if (n>0 && n<=1000) {
cout<<"\n***********\n";
cout<<"Num is "<<n;
cout<<"\n***********\n";
cout<<"Do you continue?[y/n]: ";
cin>>test;
system("cls");}
else
continue;
} while(test=='y');
system("pause");
return 0;
}

اینم از کد ترکیب دو عدد:



#include<iostream>
using namespace std;
int fact(int);
int main(){
float n,r;
float tarkib;
cout<<"Enter n: ";
cin>>n;
cout<<"Enter r: ";
cin>>r;
tarkib=(fact(n))/((fact(r))*(fact(n-r)));
cout<<"\n--------------------\n";
cout<<"Tarkib "<<r<<" az "<<n<<" = "<<tarkib;
cout<<"\n--------------------\n";
system("pause");
return 0;
}
int fact (int n){
int f=1;
for(int i=1;i<=n;i++) {
f=f*i;}
return (f);
}

البته من این کد ها رو توی ++vc نوشتم ، شما بسته به کامپایلری که استفاده میکنید باید کمی تغییر در این کدها بدید( نترسید کار زیادی نباید بکنید!!!)

Mr.Digital
پنج شنبه 20 فروردین 1388, 15:52 عصر
محمد جان خیلی زحمت کشیدین، متشکرم. از راهنمایی Kashaneh عزیز هم خیلی ممنونم.
از اینکه نتونستم به دکمه ی تشکر بسنده کنم معذرت میخوام.