triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j] 求解,这个语句求分析
triangle = []for i in range(10):
triangle.append([])
for j in range(10):
triangle.append(0)
for i in range(10):
triangle = 1
triangle = 1
for i in range(2, 10):
for j in range(1, i):
triangle = triangle + triangle
print(triangle) 本帖最后由 柿子饼同学 于 2022-8-17 16:05 编辑
一个三角形 , 在数组里 (最前面一行和一列是下标)
0 1 2 3 4 5
----------------------------
0|1
1|1 1
2|1 2 1
3|1 3 3 1
4|1 4 6 4 1
5|1 5 10105 1
如下图 , 每个格子的依赖关系就是 i, j = (i-1, j) + (i-1, j-1)
根据我画的草图 , (i-1, j-1) 就是那个 绿色的 , (i-1, j) 就是那个粉色的
每一个格子都依赖正上方的格子和左上角的格子 , 是他们的和 (这个好像是用来算组合数的, 杨辉三角)
柿子饼同学 发表于 2022-8-17 15:49
一个三角形 , 在数组里 (最前面一行和一列是下标)
0 1 2 3 4 5
好难理清楚逻辑啊 你怎么一画图我是清楚了一点,但是我感觉这个代码写法这两个坐标的值的和triangle + triangle,我想问下,for j in range(1, i), 这语句怎么分析?
wangyanren 发表于 2022-8-17 16:25
好难理清楚逻辑啊 你怎么一画图我是清楚了一点,但是我感觉这个代码写法这两个坐标的值的和triangle[ ...
- 0 1 2 3 4 5 -> j
0 0 0 0 0 0 0
1 0 1 0 0 0 0
2 0 1 1 0 0 0
3 0 1 2 1 0 0
4 0 1 3 3 1 0
5 0 1 4 6 4 1
|
v
i
"""
拿 triangle 举例, i == 5, j == 3
然后知道 triangle = triangle + triangle
也就是 + = 6
3 + 3 = 6
我也不知道怎么说, 这个应该很显然
range(1, i) 表示遍历 [1, i) 的区域 , 看上面的图 , 三角形在第 i 层有 i 个数
所以是这样
""" 如果想了解更多 , 可以搜 杨辉三角
页:
[1]