首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用预先确定的半衰期python创建指数衰减列表。

使用预先确定的半衰期python创建指数衰减列表。
EN

Stack Overflow用户
提问于 2017-04-25 14:24:02
回答 6查看 4.6K关注 0票数 0

我试图创建一个指数衰减的固定长度与预先确定的半衰期尽可能有效的列表。

假设我的半衰期为1,列表长度为5,它将返回:

代码语言:javascript
复制
[1.0, 0.5, 0.25, 0.125, 0.0625]
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-04-25 14:27:00

当一个简单的列表理解可以完成时,没有必要使事情过于复杂。

代码语言:javascript
复制
r = 0.5
a = 1.0
n = 5
l = [a*r**i for i in xrange(n)]

半衰期为2,设定

代码语言:javascript
复制
r = 0.5 ** 0.5
[1.0, 0.7071067811865476, 0.5000000000000001, 0.35355339059327384, 0.25000000000000006]
票数 5
EN

Stack Overflow用户

发布于 2017-04-25 14:27:34

尝试这样的方法,只使用列表理解

代码语言:javascript
复制
half_life = [0.5**i for i in range(5)]

output = [1.0, 0.5, 0.25, 0.125, 0.0625]

票数 2
EN

Stack Overflow用户

发布于 2017-04-25 14:26:57

这里有一种使用生成器函数和itertools.islice来实现它的方法:

代码语言:javascript
复制
from itertools import islice

def halflife(n=1):
    while True:
       yield n
       n /= 2

print(list(islice(halflife(), None, 5)))
# [1, 0.5, 0.25, 0.125, 0.0625]

print(list(islice(halflife(2), None, 5)))
# [2, 1.0, 0.5, 0.25, 0.125]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43613407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档