Python implementa el algoritmo triangular de Yang Hui

En Python, el triángulo de Yanghui siempre se elimina como una prueba de algoritmo, entonces, ¿qué es el triángulo de Yanghui? Ver definición

Primero observemos la siguiente leyenda del triángulo Yang Hui:

A través de la observación, encontrará que el primer y último número en cada fila del triángulo de Yanghui son 1, y el número que no es 1 de la tercera fila es la suma de los números en la parte superior izquierda y superior derecha.

Entonces puede comenzar a escribir código después de conocer la ley

def triangles(row):    
    count = 0
    while count < row:
        arr = []
        for i in range(count+1):
            if i > 0 and i < count:
                arr.append(lastList[i-1] + lastList[i])
            else:
                arr.append(1)
        lastList = arr
        yield arr
        count += 1


for t in triangles(10):
    print(t)

Después de escribir el código anterior, mirando tanto código, ¿se puede simplificar el código?

Luego está el siguiente código

def triangles(row):
    count = 0
    while count < row:
        arr = [arr[i-1] + arr[i] if i > 0 and i < count else 1 for i in range(count+1)]
        yield arr
        count += 1


for t in triangles(10):
    print(t)

Este código es mucho más conciso

Supongo que te gusta

Origin blog.csdn.net/qczxl520/article/details/108734692
Recomendado
Clasificación