Python中是否有实现“有理数”区间算术的方法?

8

是否有Python中实现有理数区间算术的方法?这个使用的是浮点数,而不是有理数。

如果没有,那么是否有Python中实现包括±∞的有理数的方法?

2个回答

5

Sympy包含区间, 有理数和无穷大。Interval类是Set类的子类。

# oo is the symbol for infinity
from sympy import Interval, oo, Rational

i1 = Interval(10, 15)
i2 = Interval(0, oo)
i3 = Interval(-5, -1)
# adding intervals
i4 = i1 + i3
i5 = i1 + i2
# interval with open end
i6 = Interval(Rational(1, 2), Rational(45, 3), left_open=True)

print 11 in i1 # True
print -1 in i1 # False
print 0 in i4 # False
print Rational(3, 2) in i6 # True
print oo in i2 # False
print i2.sup # oo (infinity)
print Rational(1, 2) in i6 # False
print i6.inf # 1/2

0

PyInterval现在具有Python特性中的有理区间算术。

来自PyInterval文档:

可以使用语句将区间包加载到Python解释器中,该语句将注入当前命名空间中的区间类、表示数学无穷大的常量以及提供区间超越函数的模块。

from interval import interval, inf, imath

interval[0, 2] * interval[4, inf]
interval([-inf, inf])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接