【发布时间】:2018-11-16 20:33:40
【问题描述】:
我想实现一个函数:
f(x) = a0 -inf < x < b0
a1 b0 <= x < b1
a2 b1 <= x < b2
...
an bn-1 <= x < bn
an+1 bn <= x < +inf
而不是简单的 if-else 实现。
def func(x):
if x<b0: return a0
elif x<b1: return a1
.....
我有更好的数据结构来组织它吗?
另外,在给定两个序列 {an}、{bn} 的情况下,我如何编写一个返回优化后的“func(x)”的“元函数”。
【问题讨论】:
-
你可以有一个定义为
[bi,bj]的元组bi < bj建立一个dict[tuple] = an的字典,它应该是O(1)只要字典是静态的并且在建立一次后没有改变. -
Python 有一个
interval模块;尝试浏览器搜索。 -
@Prune 我更感兴趣的是数学/算法解决方案,而不是谷歌搜索包。
标签: database algorithm math data-structures