Membuat Segitiga Pascal di Python - Inpows
Python

Membuat Segitiga Pascal di Python

Membuat Segitiga Pascal di Python – Pada artikel mengenai python kali ini, kita akan membuat segitiga pascal di python. Segitiga Pascal adalah bentuk bagus yang dibentuk oleh susunan angka. Setiap angka dihasilkan dengan mengambil jumlah dari dua angka di atasnya. Tepi luar segitiga ini selalu 1. Menjelaskan secara singkat segitiga yang dibuat adalah baris pertama adalah bernilai 1. Baris berikutnya memiliki angka 2 yang berjumlah satu dan angka 1 yang berjumlah dua. Perhatikan artikel berikut ini untuk membuat segitiga pascal di python.

Membuat Segitiga Pascal di Python

Disini saya akan membagikan empat kode yang berbeda untuk membuat segitiga pascal di python.

Kode Segitiga Pascal – 1

Berikut ini kode satu untuk membuat segitiga pascal di Python. 

def segitiga_pascal1(n_rows):
    results = []
    for _ in range(n_rows):
        row = [1]
        if results:
            last_row = results[-1]
            row.extend([sum(pair) for pair in zip(last_row, last_row[1:])])
            row.append(1)
        results.append(row)
    return results


for i in segitiga_pascal1(6):
    print(i)

Hasil yang diperoleh pada kode 1

Berikut ini adalah hasil yang didapatkan saat menjalankan kode 1 diatas.

[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]

 

Kode Segitiga Pascal – 2

Berikut ini kode kedua untuk membuat segitiga pascal di Python. 

def segitiga_pascal2(n):
    trow = [1]
    y = [0]
    for x in range(n):
        print(trow)
        trow = [left + right for left, right in zip(trow + y, y + trow)]
    return n >= 1


segitiga_pascal2(6)

Hasil yang diperoleh pada kode 2

Berikut ini adalah hasil yang didapatkan saat menjalankan kode 2 diatas.

[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]

 

Kode Segitiga Pascal – 3

Berikut ini kode ketiga untuk membuat segitiga pascal di Python. Jika kita perhatikan dua kode sebelumnya, fungsi zip digunakan pada kode-kode diatas. Nah, pada kode ketiga ini saya tidak menggunakan fungsi zip melainkan secara recursive.

def choose(n, k):
    if k in (0, n):
        return 1
    return choose(n - 1, k - 1) + choose(n - 1, k)


for row in range(10):
    for k in range(row + 1):
        print(choose(row, k), end=' ', flush=True)
    print()

Hasil yang diperoleh pada kode 3

Berikut ini adalah hasil yang didapatkan saat menjalankan kode 3 diatas.

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

 

Kode Segitiga Pascal – 4

Berikut ini kode keempat untuk membuat segitiga pascal di Python. Pada kode keempat ini, saya ingin membuat segitiga pascal yang benar-benar berbentuk seperti piramida.

def gen(n, r=None):
    if r is None:
        r = []
    for x in range(n):
        length_r = len(r)
        r = [1 if i == 0 or i == length_r else r[i - 1] + r[i] for i in range(length_r + 1)]
        yield r


def draw(n):
    for p in gen(n):
        print(' '.join(map(str, p)).center(n * 2) + '\n')


def draw_beautiful(n):
    ps = list(gen(n))
    max_val = len(' '.join(map(str, ps[-1])))
    for p in ps:
        print(' '.join(map(str, p)).center(max_val) + '\n')


draw_beautiful(10)

Hasil yang diperoleh pada kode 4

Berikut ini adalah hasil yang didapatkan saat menjalankan kode 4 diatas.

             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

Temukan source code dan tutorial coding menarik lainnya hanya di Inpows.