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

Python实现n×n金字塔填充矩阵 输入2输出[[1,1],[1,1]]问题排查

代码问题梳理
  • 矩阵维度错误:你定义k = N - 1,初始化时用range(k)生成矩阵,最终得到的是(N-1)×(N-1)的矩阵,不符合要求的n×n规格,比如n=2时只能生成1×1的矩阵,和需求不符。
  • 矩阵被错误清空:外层循环每次迭代时都执行matrix = [],直接把初始化好的矩阵重置为空列表,之前的所有赋值操作全部失效,这是输入2输出空列表的直接原因。
  • 缺失核心填充逻辑:代码完全没有实现「沿行/列向中心移动数值逐次加1」的填充规则,也没有正确的打印逻辑,循环内直接打印空matrix自然得不到正确结果。
修正方案

该矩阵的填充规则可以简化为:每个位置(i,j)的数值等于该位置到矩阵四个边界的最小距离加1,完全符合所有示例要求。
修正后代码如下:

n = int(input("Enter N value:"))
matrix = []
for i in range(n):
    current_row = []
    for j in range(n):
        # 计算当前位置到上、左、下、右四个边界的最小距离
        min_distance = min(i, j, n - 1 - i, n - 1 - j)
        current_row.append(min_distance + 1)
    matrix.append(current_row)
# 输出整数嵌套列表
print(matrix)
测试结果
  • n=2输出:[[1, 1], [1, 1]],符合预期
  • n=4输出:[[1, 1, 1, 1], [1, 2, 2, 1], [1, 2, 2, 1], [1, 1, 1, 1]],符合对称矩阵要求
  • n=5输出:[[1, 1, 1, 1, 1], [1, 2, 2, 2, 1], [1, 2, 3, 2, 1], [1, 2, 2, 2, 1], [1, 1, 1, 1, 1]],符合先增后减对称矩阵要求

内容的提问来源于stack exchange,提问作者Jia Long Liu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:36:03