鱼C论坛

 找回密码
 立即注册
查看: 1887|回复: 4

[已解决]triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j] 求解,这个语句求分析

[复制链接]
发表于 2022-8-17 15:24:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
triangle = []
for i in range(10):
    triangle.append([])
    for j in range(10):
        triangle[i].append(0)


for i in range(10):
    triangle[i][0] = 1
    triangle[i][i] = 1


for i in range(2, 10):
    for j in range(1, i):
       triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]
       print(triangle)
最佳答案
2022-8-17 15:49:12
本帖最后由 柿子饼同学 于 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   10  10  5   1

如下图 , 每个格子的依赖关系就是 i, j = (i-1, j) + (i-1, j-1)
屏幕截图 2022-08-17 155247.png
根据我画的草图 , (i-1, j-1) 就是那个 绿色的 , (i-1, j) 就是那个粉色的
每一个格子都依赖正上方的格子和左上角的格子 , 是他们的和 (这个好像是用来算组合数的, 杨辉三角)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-17 15:49:12 | 显示全部楼层    本楼为最佳答案   
本帖最后由 柿子饼同学 于 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   10  10  5   1

如下图 , 每个格子的依赖关系就是 i, j = (i-1, j) + (i-1, j-1)
屏幕截图 2022-08-17 155247.png
根据我画的草图 , (i-1, j-1) 就是那个 绿色的 , (i-1, j) 就是那个粉色的
每一个格子都依赖正上方的格子和左上角的格子 , 是他们的和 (这个好像是用来算组合数的, 杨辉三角)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-17 16:25:10 | 显示全部楼层
柿子饼同学 发表于 2022-8-17 15:49
一个三角形 , 在数组里 (最前面一行和一列是下标)

    0   1   2   3   4   5

好难理清楚逻辑啊     你怎么一画图我是清楚了一点,但是我感觉这个代码写法这两个坐标的值的和triangle[i-1][j-1] + triangle[i-1][j],我想问下,for j in range(1, i), 这语句怎么分析?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-17 18:35:26 | 显示全部楼层
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[5][3] 举例, i == 5, j == 3
然后知道 triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]
也就是 [4][2] + [4][3]   = 6
        3    +    3     = 6
我也不知道怎么说, 这个应该很显然
range(1, i) 表示遍历 [1, i) 的区域 , 看上面的图 , 三角形在第 i 层有 i 个数
所以是这样
"""
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-17 19:20:15 | 显示全部楼层
如果想了解更多 , 可以搜 杨辉三角
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-29 12:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表