我有一個問題
但我是新手
想好久了
寫不出來
想請教各位高手
我有一列數
存在陣列裡面
a[1]=x
a[2]=y
a[3]=z
。
。
a[n]=xxx
我要把上面的陣列
存在另一個陣列裡面
變成
b[1]=x
b[2]=x+y
b[3]=x+y+z
b[n]=x+y+z+....xxx
我該如何做呢????請大家教我....
作者:
sean50301 ( (づ′・ω・)づ)
2019-01-16 09:20:00b[i] = [sum(a[1:i]) for i in range(0,n)]b =打錯b = [sum(a[0:i]) for i in range(0,n)]
b=[sum(x[0:i+1]) for i in (range(0, len(x))]樓上, range 的 to index 是 exclusive
作者:
sean50301 ( (づ′・ω・)づ)
2019-01-16 09:27:00對欸應該+1XD
作者:
kiey (煉)
2019-01-16 09:34:00b.append(a[idx] if idx == 0 else b[idx-1] + a[idx])
謝謝樓上高手!!!!!k大的寫法,小弟看不懂...哈..不過還是很謝謝你!!!!
K大的是 index是0的b直接給a0 不是的就把前一個b加上這個index的a 有點歸納法fu
作者:
djshen (djshen)
2019-01-16 12:34:00不要寫成O(n^2)好嗎..另外這寫不出來不是程式問題 是國小國中數學問題
寫成O(n^2) 單純因為可以一行搞定,當然要是知道input會很大就不會這樣寫。那上面那句 append 還是要配個for loop 才行,要是要寫 for loop 我覺得那就不必寫得那麼隱晦。這樣寫更易明白:sum=0for i in x :sum+=iy.append(sum)Oops 上一行忘了indent其實用 itertools.accumulate 也可以一行搞定:y=list(itertools.accumulate(x, lambda a,b: a+b))