×

Python Pascal Triangle

Python Pascal Triangle

Pascal triangle

A pascal triangle is a number pattern of triangular array of the binomial coefficients. For designing a pascal triangle, we write a function in the program which takes an integer value as the input and print the number of lines (given by user as the integer value) for the pascal triangle.

Example: Following is the example of a pascal triangle pattern with the first 6 rows:

 1
 1 1
 1 2 1
 1 3 3 1
 1 4 6 4 1
 1 5 10 10 5 1 

Pascal triangle in Python

In Python, we draw the pascal triangle pattern using the math module. We use the factorial functions of the math module in our Python program to implement the nCr formula for pascal triangle.

Here, in this tutorial, we will learn about the following methods in our Python program to get the pascal triangle pattern in the output:

1). Directly implementing nCr formula

2). Using C (line, m-1) implementation

3). Using powers of 11 implementation

Let's learn about the all the above given methods details and understand them with an example program.

Method 1: Directly implementing the nCr Formula in the program:

When we use the nCr formula in our program, a pictorial representation as given below will appear on the screen:

           ?C0

        ¹C0   ¹C1

2C02C12C2

3C03C13C23C3

We will use the following steps or algorithm in the program while implementing this method:

  • We will first take an input integer which is the number of rows of pascal triangle to be printed. Let's assume this input integer as 'num'.
  • We will make outer iteration of m variable from 0 to given num times, for printing the rows of triangle.
  • Then, we will make inner iteration of variable n from 0 to (num-1) times, for printing variables in each row.
  • After that, we will print single blank space as " ".
  • Then, we will close the inner loop (n variable loop) and it will create the left spacing in the rows.
  • After that, we will make an inner iteration for the n variable from 0 to m.
  • Then, we will print the nCr result for m and n.
  • Now, we will close the inner loop of program.
  • In last, we will print or add new line after each inner iteration of n loop. It will add a new line while printing a new row.

Now, look at the following program for the implementation of above algorithm:

Example –

 # importing factorial functions from math module
 from math import factorial
 # taking number of rows as input from user
 num = int (input ("Enter the number of rows for pascal triangle: "))
 # defining the outer iteration for number of loops
 for m in range(num):
         # defining inner iteration for variables in each row
             for n in range(num-m+1):
                         # closing inner n iteration for left spacing
                         print (end=" ")
         # inner n iteration for elements of pascal triangle
             for n in range(m+1):
                         # implementing the nCr = n!/((n-r)!*r!) formula
                         print (factorial(m)//(factorial(n)*factorial(m-n)), end=" ")
             # using print statement for new line
             print () 

Output:

 Enter the number of rows for pascal triangle: 6
        1
       1 1
      1 2 1
     1 3 3 1
    1 4 6 4 1
   1 5 10 10 5 1
 The time complexity for the pascal triangle we have printed above is O(N²). 

Method 2: Using C (line, m-1) implementation:

In this method, we will learn that how we can optimize the complexity of code given in method 1. In this method, we will follow the concept of binomial coefficients i.e., the mth entry in a given line number (let's say line) is the binomial coefficient for C (line, m). And, all the lines of pascal triangle will start with the value 1.

The basic idea used in this implementation is that we have to calculate the C (line, m) binomial coefficients using the C (line, m-1) coefficient. General formula for such type of implementation is as follows:

C (line, m) = [C (line, m-1) * (line - m + 1)]/ m

Now, look at the following program for the implementation of above given method:

Example – 

 # taking number of rows as input from user
 num = int (input ("Enter the number of rows for pascal triangle: "))
 # defining for loop for number of rows
 for m in range(1, num+1):
 # using inner iteration for elements in triangle rows
 for n in range(0, num-m+1):
         # for left spacing in rows
 print (' ', end='')
 # defining C as first element of array equals to 1
     C = 1
     # using for loop for values in line
 for n in range(1, m+1):
         # the first value in a line is always equals to 1
 print (' ', C, sep='', end='')
      # using Binomial Coefficient for C variable
         C = C * (m - n) // n
 # printing new line for each row
 print() 

Output:

Enter the number of rows for pascal triangle: 7         
         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
 The time complexity for the pascal triangle we have printed above is O(N²). 

Method 3: Using powers of 11 implementation:

This method is considered as the most optimized approach for printing pascal triangle pattern in Python. This method is based on the approach of powers of 11. Look at the following powers of 11 to understand this approach:

 11? = 1
 11¹ = 11
 11² = 121
 11³ = 1331 etc. 

Note: However, this approach is only limited up to the n = 5 i.e., 11?. It means we cannot print more than 5 rows of pascal triangle using this approach.

Now, look at the following program for the implementation of above given approach:

Example – 1

 # taking number of rows as input from user
 num = int (input ("Enter the number of rows for pascal triangle (Maximum 5): "))
 # using for loop for number of rows
 for a in range(num):
     # adjust left spacing between each element
 print (' '*(num-a), end='')
     # computing power of 11 for each row
 print(' '.join(map(str, str(11**a)))) 

Output:

 Enter the number of rows for pascal triangle (Maximum 5): 5
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
 The time complexity for the pascal triangle we have printed above is O(N). 

Related Topics

Compound Interest GUI Calculator using PyQt5 in Python

GUI: One of the most significant factors that increased the usability of computer and digital technologies for common, less tech-savvy users is likely the development and widespread adoption of GUIs. GUIs...

6 minutes read.

STL in Python

Python has many libraries that are very useful and simplify many complex codes. In the same way, STL is also one of the python libraries used for reading and writing...

3 minutes read.

Genetic Algorithm in python

Python : Python is an object oriented programming language which is highly interpreted and is highly interactive. Python was created by Guido van Rossum in the year 1985 – 1990 .The source...

4 minutes read.

Recursive Multiplication Python

Recursive Multiplication Python In this tutorial, we will learn how to write a Python program to get the multiplication of two numbers using the recursive approach. In the recursive multiplication approach, we...

2 minutes read.

Python PPTX

Python-pptx is a python library that enables the user to create and update PowerPoint (.pptx) presentations. It is used to create modified PowerPoint presentations from the db content that can...

10 minutes read.

Python String zfill() method

Python String zfill() method The string.zfill() method in Python returns a copy of the string while adding the zeros (0) at the beginning of the string, until it reaches the specified...

1 minute read.

What is online python free IDE

An IDE is an acronym that stands for “Integrated development environment.” It is a software environment that has a software development package that consists of the code editor and builds...

4 minutes read.

Python String Negative Indexing

This page contains all the information how to use “Negative indexing“ in Python with the help of using slicing. What is an Index? An index is a numeric value, which is assigned...

3 minutes read.

What is Collaborative Filtering in ML, Python

Introduction Contents recommendation is a useful tactic for almost any specific technology looking to increase interest, but it frequently calls for a lot of user data and perhaps laborious content tagging...

3 minutes read.

How to make a firewall in Python?

Firewall: The firewall is a network which controls the incoming and outgoing network traffics of a monitor. It blocks the dataset based on the set of rules written in the security...

3 minutes read.

Decision Tree in Python

Decision Tree is one of the most essential algorithms in the area of machine learning for classification and regression. But let us first talk about the lifespan of every machine learning...

12 minutes read.

XGBoost for Regression in Python

Regression problem results real values. Decision Trees and Linear Regression are regularly used regression algorithms and use some metrics involved in regression like mean squared error and root mean squared...

5 minutes read.

Speech Recognition in Python

What is Speech Recognition? Speech Recognition is a term defined for automatic recognition of human speech. Speech recognition is the most significant activity in the domain of the interaction between the...

8 minutes read.

Python ascii() Function

Python ascii() Function The ascii() function returns a readable version of any object (Strings, Tuples, Lists, etc). This function will replace any non-ascii characters with escape characters. Syntax ascii(object) Parameter object:  An object, like String, List, Tuple, Dictionary, etc. Return This...

1 minute read.

Python Set difference() Method

Python Set difference() Method The set.difference() method in Python returns the set difference of two sets(A-B). Syntax set.difference(set1) Parameter set- This argument represents a set (minuend) set1- This arguments represents a set(subtrahend) Return This method returns the difference of the two specified...

2 minutes read.

Python Unit Test Cheat String

Python: Python is an interactive and more accessible language than any other programming language. The python programming language uses a variety of libraries to perform the operations in a faster way....

3 minutes read.

An Introduction to Subprocess in Python with Examples

Subprocess in Python By starting new processes, the Python function subprocess is utilized to run extra programs and applications. It makes it possible to run brand-new apps straight from a Programming...

6 minutes read.

Python Constructor

Introduction A constructor is defined as the special kind of function or method that is used for instance variables initialization during the creation of an object of a class. The constructor's task...

5 minutes read.

How to Substring a String in Python

String Unicode characters collection is referred to as a String. It consists of a succession of characters, including alphanumeric and special characters. Substring: Core Concept A substring is a piece of a string....

5 minutes read.

Applications of Python

Top 10 Applications of Python in 2020- 2021 Python language is famous for its general-purpose nature, which enables developers to use it in every field of development. Python can be found...

6 minutes read.