Skip to main content

Problem 15 Project Euler Solution with python

Lattice paths

Starting in the top left corner of a 2×2 grid, and only being able to move to the right and down, there are exactly 6 routes to the bottom right corner.
2x2 matrix Lattice paths. Img courtesy: Project Euler
2x2 matrix Lattice paths. Img courtesy: Project Euler
How many such routes are there through a 20×20 grid?

Actually if you were to find solution for this problem using iterations you will end up discovering a new formula for this problem. I am assuming that if you have took the challenge of solving some problem(not this one), then you are really smart enough to find a formula for this kind of problem. I seriously suggest you to take some time and find a new formula or something else like that. 

Okay lets get back to the problem. Actually formula for this kind of problem was found by Some mathematician already and the solution can be written as follows:

If you were to start from (0,0) and then reach (a,b) along the lattice paths then the number of ways in which you can do that can be given as(a+b)Ca also represented as a+bb. This is called as Binomial Coefficient and its expansion can be written as:(a+b)!a! b!

If you want to learn more on how I got this formulae then you can see:
  1. Combination and Lattice Paths 
  2. Binomial Coefficients 
  3. Lattice Path - Wolfram
  4. Counting Lattice Paths**

Program

The program is a direct implementation of the above formula and we have not at all used any iterations or derived any conclusions from the question given. The program is as follows:
I have used the direct inbuilt factorial function from the math module in python.
This made my work still easier and I wrote the program in few minutes.
The whole code is well commented.
If you want to download the code then you can download it from github gist

Output

Summary

My mind says that I have not really worked hard to find the solution to this problem. But my conscience says that I have worked smartly to find the solution to this problem and I have arrived at a solution. Both of them are correct, but I would like to prefer my conscience talk rather than what my mind says.

Anyways this problem is very very easy once you know the formula. But if you have any doubt or didn't understand anything then please do comment in the comment box below and I will be glad to help you.

Please don't hesitate to comment if you have a different/better solution. Share your code even if it has a longer run time than the above problem. Thinking in a different way is the most important thing rather than the execution time.

You can also contact me if you want.

Thank you. Have a nice day😃.

Popular posts from this blog

Project Euler Problem 67 Solution with Python

Maximum path sum II By starting at the top of the triangle below and moving to adjacent numbers on the row below, the maximum total from top to bottom is 23. 3 7 4 2 4 6 8 5 9 3 That is, 3 + 7 + 4 + 9 = 23. Find the maximum total from top to bottom in triangle.txt (right click and 'Save Link/Target As...'), a 15K text file containing a triangle with one-hundred rows.

Problem 43 Project Euler Solution with python

Sub-string divisibility The number, 1406357289, is a 0 to 9 pandigital number because it is made up of each of the digits 0 to 9 in some order, but it also has a rather interesting sub-string divisibility property. Let d 1 be the 1 st digit, d 2 be the 2 nd digit, and so on. In this way, we note the following: d 2 d 3 d 4 =406 is divisible by 2 d 3 d 4 d 5 =063 is divisible by 3 d 4 d 5 d 6 =635 is divisible by 5 d 5 d 6 d 7 =357 is divisible by 7 d 6 d 7 d 8 =572 is divisible by 11 d 7 d 8 d 9 =728 is divisible by 13 d 8 d 9 d 10 =289 is divisible by 17 Find the sum of all 0 to 9 pandigital numbers with this property. One might write a simple solution using direct if else statements for this problem. Using if else statements, the execution time may be a few seconds. But this is not a very good approach. I too had written a program with if else statement which will take each and every permutation of the 0-9 Pandigital and check for the conditions given in the qu...

Add/Embed SVG to Blogger website

In this post I will tell you my method(trick) of adding SVG images in a blogger website or blog. Before starting , the first thin g I am assu m ing is that you are aware of SVG if you are here. If not please see S calable V ec tor G raphics Recently when I tried to embed a SVG image for a post on pygal, I tried uploading the SVG file and blogger Image uploader came up with an error, because of which I had to find some other way.  SVG File upload Error in Blogger  I started sea rc hing Google " Embed SVG in Blogger " . I found blogorrhea , w h ich gave some i nformatio n on add ing SVG directly as a markup , which worked , but I faced another problem using this . Also th is guy has used lot of Javascript which was confusin g for me, being new to using SVG.   So I first t houg ht of learning on h ow to embed SVG in HTML and t his on e worked out. Actually we can embed SVG in HTML i n following ways: Using Object tag Using Iframe tag Using embed...