مي شه لطفا بر نا مه مثلث خيام را تا سطر n بهم بديد .ممنون مي شم
1
1 2 1
1 3 3 1
1 4 6 4 1
مي شه لطفا بر نا مه مثلث خيام را تا سطر n بهم بديد .ممنون مي شم
1
1 2 1
1 3 3 1
1 4 6 4 1
من الگوریتم کلیش رو میگم خودتون زحمت نوشتنشو بکشید:- ایجاد کلیه تاپیکهای و پستهای مربوط به پروژه های درسی ممنوع و در صورت مشاهده حذف خواهند شد. سوالات و پروژهاي دانشجويي خود رو اينجا قرار ندهيد. لطفا تا حدودی که در توان خودتون هست تمرین يا پروژه رو حل کنید و جلو برید تا اینکه اگر احیانا در بين كار به مشکلی بر خوردید در اینجا مطرح کنید.
مثلث خیام (خیام - پاسکال یا خیام - نیوتون)
5 خط اول این مثلث به صورت زیر است:
در واقع این اعداد صورت دیگری از بسط دوجمله ای اند. به کد زیر دقت کنید:
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگر آن ها را در یک ماتریس بنویسیم:
میتوان گفت هر درایۀ ماتریس پایین مثلثی از جمع دو درایۀ بالا و بالا سمت چپ خود درست شده است یعنی:
برای پیاده سازی الگوریتم بوسیلۀ ماتریس، باید ابتدا همۀ آرایه های ستون اول و قطر اصلی را 1کنیم.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و سپس باقی خانه ها را با توجه به فرمول گفته شده پر کنیم:
و سپس ماتریس پایین مثلثی را چاپ می کنیم.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by hamidreza_buddy; 17-04-2007 at 18:09.
از لطف شما سپاسگزارم ولي من بددون استفاده از ارايه مي خوام
اگر لطفي كنيد و در اون مورد منو راهنمايي كنيد .ممنون
یه راه به ذهنم رسید ولی Performance ش خیلی خوب نیست.
همونطور که گفتیم این اعدا ضرایب بسط دوجمله ای هستند. پس میشه اون ها رو اینطوری حساب کرد:
که تابع C(n,i) int هم ضرایب بسط دو جمله ای رو حساب می کنه:کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که علامت ! هم مثلاً فاکتوریل هست.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
(اگر می شد فاکتوریل ها رو تو آرایه ذخیره کنی Pernormance یک درجۀ n کمتر می شد. ( از O(n^3) می رسید به O(n^2))
Last edited by hamidreza_buddy; 18-04-2007 at 22:32.
شاید این ادرس تو را یاری کند
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام hamidreza_boddy اگر جوابت را گرفتی برای من هم بفرستواز دوستان خواهش میکنم هر کس برنامه تبدیل عبارات میانوندی به پسوندی وپیشوندی را دارد برای منبفرستد وهمچنین ارزیابی عبارات پسوندی وپیشوندی را نیز نیاز دارم
Last edited by setare55; 07-06-2007 at 13:09.
سلام خدمت تمام دوستان عزيز
من تازه اين بخش رو ديدم
مثلث خيام رو براتون گذاشتم (فايل cpp) اگه خواستيد دانلود كنيد
التماس دعا
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
راهنمایی من اینه که باید از تابع بازگشتی استفاده کنی
امیدوارم که خوشتون اومده باشه
//Draw Pascal Triangle
//by: Arash.Nematy
#include <iostream.h>
#include <conio.h>
double fact(int tofact);
void main(){
int a,b,noc; //noc = Number Of Columns
int i,j; //counters
cin>>noc;
for(i=0;i<=noc;i++){
cout<<"\n";
for(j=noc-i;j>=0;j--) //for spaces
cout<<" ";
for(j=0;j<=i;j++){
cout<<fact(i)/(fact(j)*fact(i-j))<<" ";
}
}
getch();
}
double fact(int tofact){ //Recursive function | fact(n) = n!
if(tofact==0)
return 1;
else
return tofact*(fact(tofact-1));
}
پیشنهاد منم اینه!
#include<iostream>
#include<conio.h>
using namespace std;
int *charger(int *x , int *y)
{
for(int i=1;i<100;i++)
{
y[i]=x[i-1]+x[i];
}
return y;
}
int main()
{
cout<<"Welcome to Khayyam-Pascal Triangle Program.\nThis program helps you to calculate Khayyam-Pascal Triangle."<<endl;
int rows=0;
int *a=new int[100];
int *b=new int[100];
for(int i=0;i<100;i++)
{
a[i]=0;
b[i]=0;
}
char answer='u';
error:
cout<<"Enter number of rows(max 34)"<<endl;
cin>>rows;
if(rows>34)
{
cout<<"Error report: You have Entered a number bigger than 34."<<endl;
cout<<" This may make mistakes in program."<<endl;
cout<<" Would you like to enter another number?(y,n)"<<endl;
cout<<" ";
cin>>answer;
if(answer=='y')
{
goto error;
}
}
a[1]=1;
cout<<"------------------Khayyam Pascal Triangle-------------------"<<endl;
while(rows>0)
{
for(int i=1;i<100;i++)
{
if(a[i]!=0)
cout<<a[i]<<" ";
else
break;
}
b=charger(a,b);
cout<<endl;
rows--;
if(rows>0)
{
for(int i=1;i<100;i++)
{
if(b[i]!=0)
cout<<b[i]<<" ";
else
break;
}
cout<<endl;
rows--;
a=charger(b,a);
}
}
getch();
return 0;
}
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)