در این جلسه تیم کدگیت را با آموزش مثلث خیام پاسکال در سی پلاس پلاس همراهی کنید. پیش نیاز این آموزش شامل موارد زیر است:
مثلث خیام پاسکال
مثلت خیام (Pascal’s triangle) آرایشی مثلث شکل از ضرایب بسط دوجمله ای است. به مثلث خیام در زبان انگلیسی مثلث پاسکال، در زبان ایتالیایی مثلث تارتالیا و در زبان چینی مثلث یانگ هویی گفته می شود. البته اسامی مانند مثلث خیام-پاسکال یا مثلث خیام – پاسکال نیوتن نیز می گویند(scipost.ir).
.
مثلث خیام پاسکال در سی پلاس پلاس
ایده پیاده سازی مثلث خیام پاسکال در سی پلاس پلاس بسیار ساده است. در تصویر بالا ما دو نکته را متوجه میشویم: اول اینکه برای بدست آوردن هر عدد، از خانه های سطر قبل استفاده میشود و دوم اینکه اگر همه اعداد را کنار هم قرار دهیم به شکل زیر در می آید:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
در این قسمت ما با استفاده از ضریبهای بسط دوجمله ای(اعداد درون مثلث)، به پیاده سازی مثلث خیام پاسکال می پردازیم. فرمول آن نیز به صورت زیر میباشد:
C(line, i) = line! / ( (line-i)! * i! )
در فرمول بالا Line سطر مثلث است و i ستون مثلث است. حال به پیاده سازی آن می پردازیم.
پیاده سازی خیام پاسکال در سی پلاس پلاس
پیاده سازی مثلث خیام پاسکال به صورت زیر است:
void printPascal(int n) {
for (int line = 1; line <= n; line++) {
int C = 1;
for (int i = 1; i <= line; i++) {
printf("%d ", C);
C = C * (line - i) / i;
}
printf("\n");
}
}
در کد بالا ما یک متد نوشتیم با یک ورودی که همان تعداد سطر مثلث ما است. دو حلقه تو در تو نوشتیم که یکی برای تعداد سطرها و دومی برای تعداد ستون های ماست. همنطور که میبینید ما بعد از محاسبه مقدار مشخصی از مثلث آن را پرینت می کنیم.
تست برنامه خیام پاسکال در سی پلاس پلاس
برای تست کدهای بالا، کد main زیر را بزنید:
int main() {
int n = 10;
printPascal(n);
return 0;
}
در کد بالا مت تعداد سطرهای مثلث خیام پاسکال را مشخص کرده و تابع آن را صدا زدیم. خروجی این برنامه به صورت زیر است:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1