java, جاوا, حل مسائل با جاوا, ساختمان داده در جاوا

مثلث خیام پاسکال در جاوا (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++) {
                System.out.print(pascal[i][j] + " ");
            }
            System.out.println();
        }
    }

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

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

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

    public static void main(String[] args) {
        int n = 10;
        pascal(n);

    }

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

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

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

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

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