Blaise Pascal (AD 1623 - 1662 )

In this program, we'll be generating the below number-triangle:

Known as Pascal's Triangle, it's a triangular array of Binomial Coefficients named after Blaise Pascal, a French mathematician, physicist, inventor, writer and Catholic philosopher (a Jansenist apologist, to be precise), which he described in his book

File:

We first write a class called

Next we invoke it in the

Here, I've displayed the triangle upto 15 rows. If you want more number of rows, just assign it to the

Pascal's Triangle

Known as Pascal's Triangle, it's a triangular array of Binomial Coefficients named after Blaise Pascal, a French mathematician, physicist, inventor, writer and Catholic philosopher (a Jansenist apologist, to be precise), which he described in his book

*Traité du triangle arithmétique*of 1653.File:

**PascalTriangle.java**We first write a class called

**BinomialCoefficient**for computing the Binomial Coefficient (inclusive of the**Factorial**class) as:**class Factorial {****static long factorial (byte i)****{****if(i == 0 || i == 1)****return (long) 1;****else****return (long) i ****factorial*((byte) (i - 1));**}****}****class BinomialCoefficient {****static long binomialCoefficient(byte n, byte r){****long binCoeff = 0;****binCoeff = (long) (Factorial.***factorial*(n))/**(Factorial.***factorial*(r) ***Factorial.factorial((byte) (n - r)));****return (long) binCoeff;****}****}****PascalTriangle**class below it as:**public class PascalTriangle {**

**public static void main(String[] args) {**

**byte numberOfRows = 15;**

**String[] sumOfBinomialCoefficients**

**= new String[numberOfRows] ;**

**System.out.println();**

**for(byte rowIndex = 0;rowIndex <**

**numberOfRows;rowIndex++)**

**{**

**sumOfBinomialCoefficients[rowIndex] = "";**

**for(byte columnIndex = 0;columnIndex <= r**

**owIndex;columnIndex++)**

**{**

**sumOfBinomialCoefficients[rowIndex] +=**

**BinomialCoefficient.binomialCoefficient**

**(rowIndex,columnIndex)**

**+ " ";**

**}**

**}**

**for(byte rowIndex = 0;rowIndex < n**

**umberOfRows;rowIndex++)**

**{**

**for(long padding = 0;padding <**

**(s**

**umOfBinomialCoefficients[numberOfRows - 1].length() -**

**sumOfBinomialCoefficients[rowIndex].length())/2;padding++)**

**{**

**System.**

*out*.print(" ");**}**

**for(byte columnIndex = 0;columnIndex <= rowIndex; c**

**olumnIndex++)**

**{**

**System.**

*out*.print(BinomialCoefficient.binomialCoefficient**(rowIndex,columnIndex) + " ");**

**}**

**System.**

*out*.println();**}**

**}**

**}**

**A little note first: I pasted the program written in Eclipse IDE in a notepad and saved it inside the Java Programs folder in drive C:\. I'll be running the program in the Command-Line Interface.**

**numberOfRows**variable. The output is as:
Dennis, thanks for the great program. There is a small error in your program. Once I corrected it, I was getting the right results.

ReplyDeleteHere is the error:

binCoeff = (long) (Factorial.factorial(n)/

Factorial.factorial(r) * Factorial.factorial((byte) (n - r))));

------

It needed to be:

binCoeff = (long) (Factorial.factorial(n))/

(Factorial.factorial(r) * Factorial.factorial((byte) (n - r)));

and it worked fine. Thanks very much.

Hi Ilango, thanks for the feedback. Sorry I didn't check my blog for a long long time.

ReplyDelete