Suma de segmentos iniciales

Los segmentos iniciales de [3,1,2,5] son [3], [3,1], [3,1,2] y [3,1,2,5]. Sus sumas son 3, 4, 6 y 9, respectivamente. La suma de dichas sumas es 24.

Definir la función

tal que (sumaSegmentosIniciales xs) es la suma de las sumas de los segmentos iniciales de xs. Por ejemplo,

Comprobar con QuickCheck que la suma de las sumas de los segmentos iniciales de la lista formada por n veces el número uno es el n-ésimo número triangular; es decir que

es igual a

Soluciones

Pensamiento

Al andar se hace camino,
y al volver la vista atrás
se ve la senda que nunca
se ha de volver a pisar.

Antonio Machado

5 Comentarios

  1. Solución en Maxima

    suma (xs) := lreduce («+»,xs)$
    inits (xs) := (makelist ((rest((reverse (xs)),k)),k,0,(length(xs)-1)))$
    sumaSegmentosIniciales (xs) := (lreduce («+» ,(map((lambda([ys],suma(ys))),inits (xs)))))$

Escribe tu solución