#c, حل مسائل با سی شارپ, ساختمان داده در سی شارپ, سی شارپ

مثلث خیام پاسکال در سی شارپ (Pascal Triangle)

مثلث خیام پاسکال در سی شارپ

در این جلسه تیم کدگیت را با آموزش مثلث خیام پاسکال در سی شارپ همراهی کنید.پیش نیاز این آموزش شامل موارد زیر است:

  1. آشنایی با آرایه
  2. آشنایی با for

مثلث خیام پاسکال

مثلت خیام (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

اگر به اعداد دقت کنید هر سطر آن شبیه به آرایه است که طول آن هر بار 2 عدد اضافه میشود(آرایه ای با سطر ثابت و ستون متغیر برای هر سطر). حال فرض کنید ما در سطر 3 و ستون 2  قرار داریم(عدد 2).برای محاسبه این خانه باید دو خانه در سطر دو و ستون 2 و دیگری سطر سه ستون سه را با هم جمع کرد. فقط مشکل اینجاست که خانه های اول که ستونی قبل از خود ندارند را طوری قرار دهیم که آرایه ما از محدوده خارج نشود. راه حل این کار هم بسیار ساده است به جای اینکه از سطر صفر و صفر کنیم(منظور اندیس آرایه است) از سطر 1 و 1 شروع میکنیم.

کد مثلث خیام پاسکال در سی شارپ

پیاده سازی مثلث خیام پاسکال به صورت زیر است:

  public static void pascal(int n){
        int[][] pascal  = new int[n+1][];

        pascal[1] = new int[1+2];
        pascal[1][1] = 1;


        for (int i = 2; i <= n; i++) {
            pascal[i] = new int[i+2];
            for (int j = 1; j < pascal[i].Length - 1; j++)
                pascal[i][j] = pascal[i-1][j-1] + pascal[i-1][j];
        }

        // print results
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j < pascal[i].Length - 1; j++) {
                Console.Write(pascal[i][j] + " ");
            }
            Console.WriteLine();
        }
        }

در کد بالا ما یک متد نوشتیم با یک ورودی که همان تعداد سطر مثلث ما است. یک آرایه تعریف کردیم با تعداد سطر n+1 (گفتیم به جای سطر صفر از یک شروع میکنیم و به جای ستون صفر از ستون یک شروع میکنیم ). دو حلقه for نوشتیم برای بدست آوردن مثلث خیام پاسکال و بعد از آن دو for دیگر برای نمایش این مثلث نوشتیم.

تست مثلث خیام پاسکال در سی شارپ

برای تست کدهای بالا، کد main زیر را بزنید:

    public static void Main (string[] args)
    {
        int n = 10;
        pascal(n);


        Console.ReadKey ();
    }

خروجی این برنامه به صورت زیر است:

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

نوشته های مشابه

2 دیدگاه در “مثلث خیام پاسکال در سی شارپ (Pascal Triangle)

  1. نیکان گفت:

    چرا ارور Cannot use local variable ‘pascal’ before it is declared میده؟

    1. سلام. سورس کد آخر این مطلب را دانلود کنید. فایلی به نام program.cs را باز کنید. کد این فایل را در پروژه خود کپی و اجرا کنید. برنامه به درستی اجرا خواهد شد.
      پس از پیغام شما کد در کامپایلر آنلاین مجددا بررسی و اجرا گردید. کد بدون خطا اجرا شد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *