几何级数
初始化一个包含指定范围内数字的列表,其中 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]