python - 需要帮助构建简单的递归函数
问题描述
我有一个包含 93 个数字的数组。我需要对它们进行总计,所以我需要构建一个类似于 SUM = n*G0 + (n-1)*G1 + (n-2)*G3 + ... Gn 的函数
但我不知道如何制作一个这样做的 for 循环
一开始看起来像这样 SUM_0 = G0,SUM_1 = G1+2*G0,SUM_2 G2+2*G1+3*G0, SUM_4 G3+2*G2+3*G1+4*G0
ETC...
解决方案
以下功能将为您提供sum
您正在寻找的。至于序列,请再举一个例子。
def mysum(my_array):
n = len(my_array)
sum = 0
for i, j in enumerate(my_array):
sum += (n - i)*j
return sum
这是获取序列的方法。
def subsum(an_array):
l = len(an_array)
if l == 1:
return an_array[0]
else:
return sum([i*j for i, j in list(zip(an_array[::-1], range(1, l+1)))])
def sequence_from(my_array):
seq = []
for i, j in enumerate(my_array):
seq.append(subsum(my_array[:i+1]))
return seq
sequence_from([1,2,3,4, 6])
>>>[1, 4, 10, 20, 36]
第一个函数subsum
接受一个数组并在返回解决方案之前在该数组上应用序列定义。
第二个函数sequence_from
扩展subsum
以获得您想要的最终序列。
推荐阅读
- tailwind-css - 将鼠标悬停在 Tailwindcss 中时如何增加文本输入宽度(带过渡)
- python - 如何在不刷新烧瓶项目页面的情况下更新值
- ios - 错误:属性声明中应有“var”关键字
- linux - 为什么nop操作会导致sigint?
- javascript - 使用particles.js 插件更改背景滑块旋转
- jekyll - 如何在 Jekyll 中显示前 N 个帖子
- java - Android中泰卢固语字符串的正则表达式?
- windows - 如何使用 vb.net 中的 IP 地址连接到打印机?
- testing - 在 JMeter 中录制时,服务器名称显示为 www.google.com
- unity3d - Agora 无法使用采集卡输入