You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

奇数阶N×N带X型对角规律方阵的简单生成算法求解

奇数阶X型对角分布方阵生成算法

核心规律

这类方阵的数值仅由坐标到两条对角线的最短距离决定:

  • 主对角线为i=j,坐标(i,j)到主对角线的距离为abs(i-j)
  • 反对角线为i+j=N-1,坐标(i,j)到反对角线的距离为abs(i+j - (N-1))
  • 坐标(i,j)的最终取值为两个距离的最小值加1

该类方阵的最大数值固定为(N+1)//2,完全符合5阶最大取值3、7阶最大取值4的规律

实现步骤

  • 输入奇数阶数N,提前校验N为奇数,避免异常
  • 计算反对角线和阈值sum_threshold = N - 1
  • 逐行逐列遍历所有坐标,按上述规律计算每个位置的数值
  • 拼接得到完整矩阵

示例代码(Python)

def generate_x_square(N: int) -> list[list[int]]:
    if N % 2 == 0:
        raise ValueError("仅支持奇数阶的方阵生成")
    sum_threshold = N - 1
    res = []
    for i in range(N):
        row = []
        for j in range(N):
            d_main = abs(i - j)
            d_anti = abs(i + j - sum_threshold)
            row.append(min(d_main, d_anti) + 1)
        res.append(row)
    return res

# 测试输出5阶方阵
for row in generate_x_square(5):
    print(row)
# 测试输出7阶方阵,验证最大值为4
print(max(max(row) for row in generate_x_square(7)))

复杂度说明

算法时间复杂度为O(N²),是生成该类方阵的最优复杂度,因为必须遍历所有N²个元素完成赋值。

内容的提问来源于stack exchange,提问作者Dirk N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 16:24:08