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

Making a quiz web app with python and flask

Edit : When you are creating a web app with h tml templates, then y ou will have to sa ve the html file in templates folder in the Current Wor ki ng Directory( CWD). If you save the file in the C W D directl y you will get a TemplateNotFound error. Thank you Udhay for pointing it out.   In this post we will create a quiz website using python . I will be using the flask framework . After reading this tutorial you will learn form submission , flask templates , python code in flask templates , shuffling the questions and options with the random module and few others.  Please note that this tutorial is not big as it seems to be. Some of the code has been rewritten to maintain consistency and also font size is somewhat big so that your eyes won't get stressed reading this tutorial. Also the content has not occupied the full width of the page. In this tutorial I am assuming that you are having a very basic understanding of the flask framework . Please refer the documentation

Problem 11 Project Euler Solution with python

Largest product in a grid In the 20×20 grid below, four numbers along a diagonal line have been marked in red. 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70 67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21 24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72 21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95 78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92 16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57 86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58 19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40 04 52 08 83 97 35 99 16 07

Problem 60 Project Euler Solution with python

Prime pair sets The primes 3, 7, 109, and 673, are quite remarkable. By taking any two primes and concatenating them in any order the result will always be prime. For example, taking 7 and 109, both 7109 and 1097 are prime. The sum of these four primes, 792, represents the lowest sum for a set of four primes with this property. Find the lowest sum for a set of five primes for which any two primes concatenate to produce another prime. This problem is j u st a brute force problem. If you have come here because you don't know the limit upto which you will h ave to gener ate the prime numbers t hen go ahe ad and t r y with 10,000 . When I first start ed solving the problem I chose 1 million(beca use most of the problem s on project E uler have this limit ), but it took very long for the computer to fin d the solution. After searching on the internet then I found many people choosing 10, 000 so I have changed my in put f rom 1 million to 10000 and the output was f ast. He