算法创作|规则数列计算解决方法

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法创作|规则数列计算解决方法相关的知识,希望对你有一定的参考价值。

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

问题描述

如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。1 2 6 7 15 …3 5 8 14 …4 9 13 …10 12 …11 ……(1)容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列的数是多少?

解决方案

先设置循环次数为20次,横向和纵向都为20,再根据奇偶数设置规则,再循序渐进,最后找出数字

代码清单Python代码

matrix = [[0 for i in range(50)] for i in range(50)]

matrix[0][0] = 1

row = len(matrix)

col = len(matrix)

i=0

j=0

for k in range(20):

    if i == 0 and j % 2 == 0:

        j += 1

        matrix[i][j] = matrix[i][j-1] + 1

        while j > 0:

            matrix[i+1][j-1] = matrix[i][j] + 1

            i += 1

            j -= 1

    if j == 0 and i % 2 == 1:

        i += 1

        matrix[i][j] = matrix[i-1][j] + 1

        while i > 0:

            matrix[i-1][j+1] = matrix[i][j] + 1

            j += 1

            i -= 1

print(matrix)

结语

此代码计算了规则数列的数字寻找问题,在之后会不断改进代码。

实习编辑:王晓姣

作者:彭微 张冬梅 牛雨豪

稿件来源:深度学习与文旅应用实验室(DLETA)

以上是关于算法创作|规则数列计算解决方法的主要内容,如果未能解决你的问题,请参考以下文章

算法创作|阶梯电价问题解决方法

算法创作 | 二叉树遍历问题解决方法

算法创作|神奇语言问题解决方法

如何用递归解决斐波那契数列

JAVA递归算法

蒙特卡洛算法