几何级数
初始化一个包含指定范围内数字的列表,其中 start
和 end
是包含的,两个项之间的比率为 step
。
- 使用
range()
、math.log()
和math.floor()
以及列表推导式创建一个适当长度的列表,对每个元素应用步长。 - 如果
step
等于1
,则返回错误。 - 省略第二个参数
start
,将使用默认值1
。 - 省略第三个参数
step
,将使用默认值2
。
from math import floor, log
def geometric_progression(end, start=1, step=2):
return [start * step ** i for i in range(floor(log(end / start)
/ log(step)) + 1)]
geometric_progression(256) # [1, 2, 4, 8, 16, 32, 64, 128, 256]
geometric_progression(256, 3) # [3, 6, 12, 24, 48, 96, 192]
geometric_progression(256, 1, 4) # [1, 4, 16, 64, 256]