首页 > 解决方案 > 斜矩阵记数

问题描述

我有一个大小为 n 的方阵,该矩阵包含从 1 到 n ^ 2 的数字,排列如下:

矩阵计数

等等。

知道了矩阵的元素个数,就需要找出它所在的列数和行数。提前感谢您的回答。

标签: algorithmmatrix

解决方案


我似乎有一个解决方案,这是python代码:

num = int(input())
sum = 1
i = 1
while (num>sum):
    i += 1
    sum += i
diff = sum - num
if (i%2):
    Y = i - diff
    X = diff + 1
else:
    Y = diff + 1
    X = i - diff

通过这种方式,我们计算了数字所在的对角线的数字(这很有用,因为对角线上的相邻数字相差一个)。这是可能的,因为每个对角线包含的数字比前一个多 1 个。

接下来,我们看看对角线数的奇偶性。结合起来,这是对角线上的数字的数量,我们以最简单的方式计算数字在矩阵中的位置。你可以做实验。


推荐阅读