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

如何仅输入单个列表完成NumPy对称矩阵上三角元素填充

单次输入列表构造倒数对称矩阵实现方案

完全可以实现,核心逻辑是先匹配上三角元素总数与输入列表长度,按行优先填充上三角后同步生成对称的下三角倒数即可。

实现逻辑

  • n阶矩阵中,对角线固定为1,需要填充的严格上三角(满足i<j的位置)总元素数为 n*(n-1)//2,仅需保证单次输入的列表长度和该数值匹配即可
  • 按行优先顺序遍历所有上三角坐标,依次填入列表元素
  • 同步将对称的下三角位置赋值为对应上三角元素的倒数

可直接运行的代码

import numpy as np

n = int(input())
# 单次输入所有上三角元素,空格分隔
entries = list(map(float, input().split()))
matrix = np.ones((n, n))

elem_idx = 0
for i in range(n):
    for j in range(i + 1, n):
        matrix[i, j] = entries[elem_idx]
        matrix[j, i] = 1 / entries[elem_idx]
        elem_idx += 1

print(matrix)

示例测试

输入参数和你给出的示例一致:

  • n = 3
  • 输入列表:2 3 4

运行后输出和预期完全匹配:

[[1.         2.         3.        ]
 [0.5        1.         4.        ]
 [0.33333333 0.25       1.        ]]

注意事项

  • 输入列表长度必须严格等于n*(n-1)//2,比如n=4时需要输入6个元素,否则会触发索引越界
  • 输入的元素不能为0,否则计算倒数时会出现除零错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:54:02