欧拉计划问题十五matlab实现

Problem 15 :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.

                                                                   

How many such routes are there through a 20×20 grid?

思路 :

看到这种题目很亲切有没有?就像上小学时候数学题-------找规律。这道题就是以前找规律题的plus版,题目很容易理解,那我们要怎么找出规律呢?细看一下发现规律确实没那么容易找,正推推不出来,于是我采用逆向思维,画了几个3x3,4x4,  6x6的方格,发现越来越有意思了。有些问题我们可能不能从表面发现其内在联系,可是一旦发现了一些规律,你就会惊叹为什么自己刚开始的时候不去这样想!

一旦有了思路,便会文思泉涌,笔耕不缀,我画了一个图,看上去更直观!

  • 仔细观察,这不就是传说中著名的-------------杨辉三角吗?
  • 其中标记的点旁边的数字代表从该点到结束点路径的数目。举个栗子:比如说黑点到结束点有两条路径,一条是先往右一格,再往下一格。另一条呢就是先往下一格,再往右一格。很有意思,有没有?接下来的对角线呢?

你眼中看似落叶纷飞,变化无常的世界,实际只是躺在上帝怀中一份早已谱好的乐章!

代码 :

clear,clc;
tic
A = zeros(41);
A (:,1) = 1;
A (2,2) = 1;
for i = 3:41
    A (i,i) = 1;
    for j = 2:i-1
        A(i,j) = (A(i-1,j-1)) + (A(i-1,j));        %yanghui triangle lterative
    end
end
t = max(A,[],2);                %save data to matrix
disp(max(t));
toc

 结果 :  137846528820

         

猜你喜欢

转载自blog.csdn.net/qq_38910271/article/details/83118592