【发布时间】:2019-12-05 17:41:48
【问题描述】:
我有两个函数生成两个矩阵,第一个函数生成一些方阵,而第二个函数根据第一个矩阵生成一维矩阵。两个函数都依赖于参数 N,第二个函数矩阵结果应该有一个 (N*2)**2 的矩阵。我的问题是当我使用参数 N 的值大于 4 时,它们总是从第二个开始缺少 10 个元素函数结果。(已删除 OP 函数以创建一个最小问题。请检查编辑以获取详细信息。下面是一个示例函数来演示该问题
def test(N):
m = []
for i in range(0,(N*2)):
for j in range(-1,(N*7),4):
m.append((i,j))
return len(m)
N = 4 的示例
test(4)
输出:
64
N = 5 的示例
test(5)
输出:
90
示例 2 中的结果是 90,而应该是 100,谁能帮忙
【问题讨论】:
-
范围在末尾以下停止一格。会是这个原因吗?
-
我想过这个,但是对于少数 N 来说它运行顺利
-
这几乎肯定是相关的。你只看到它高于 4,因为你按 4 计数。例如,如果你做
for j in range(-1,(N*7)+1,4),那么它对N=5正常工作,但这并不能解决所有 Ns。 -
是的,现在它可以工作了,我将范围公式更改为这个范围(-1,(N * 7)+(N-4),4)),现在它工作得很好
标签: python arrays for-loop matrix