Discuss / Python / 交作业

交作业

Topic source

chengww5217

#1 Created at ... [Delete] [Delete and Lock User]

规律:

  • 1.初始值:第一个数组是 [1]
  • 2.常量:后续每一个数组首尾的值都是 1
  • 3.递进规律:下一个数组
    • 3.1.下一个数组的长度是前一个数组长度 + 1
    • 3.2.下一个数组中间数组长度(去除第一个和最后一个数)为前一个数组长度 - 1
    • 3.3.下一个数组中间数组 M[] 可由上一个数组 L[] 计算得出:M(x) = L(x) + L(x + 1)
    • 3.4.下一个数组 L = [1] + M + [1]
# -*- coding: utf-8 -*-
def triangles():
    L = [1]
    while(True):
        yield L
        M = [L[x] + L[x + 1] for x in range(len(L) - 1)]
        L = [1] + M + [1]
        # 下面是上诉规律的过渡写法
        # centerLen = len(L) - 1 # 3.2
        # M = [] # 定义下一个数组的中间数组为M
        # for x in range(centerLen):
            # M.append(L[x] + L[x + 1]) # 3.3
        # L = [1] + M + [1] # 3.4

如果以上说明对您有用,请思考:为什么 L[x] + L[x + 1] 这种写法不怕数组下标越界

range只达下界不达上界


  • 1

Reply