Python区間ライブラリinterval
19268 ワード
例1:区間の作成&左右の境界値の検証
例2:半閉半開区間&検出閉区間境界値
例3:区間併合、交叉判定、近隣判定
注:区間解釈
数学区間とはある範囲を指す.全開区間、全閉区間、半開半閉区間、半閉半開区間に分類される.全開区間:符号は()であり、端点を含まない区間を指す.例えば(2,4)、実数範囲内が2より4より大きい実数を表す.全閉区間:符号を[]とし、端点を含む区間、例えば[2,4]を指し、実数範囲内が2以上4以下の範囲内の実数を表す.半開半閉区間:最小データを含まない端点を示す記号()であり、最大データを含む端点を含む区間を指す.例えば(2,4)、実数範囲が2以上4以下の実数を示す.半閉半開区間:記号が[)であり、最大データを含まない端点を含む区間を指す.例えば(2,4)は、実数範囲が2以上4未満の実数を示す.
In [22]: from interval import Interval
#
In [23]: a = Interval(2,5)
# ,
In [24]: 2 in a
Out[24]: True
In [25]: 5 in a
Out[25]: True
例2:半閉半開区間&検出閉区間境界値
# b
In [26]: b = Interval(2, 5, lower_closed=False)
# a,b
In [29]: a
Out[29]: Interval(2, 5, lower_closed=True, upper_closed=True)
In [30]: b
Out[30]: Interval(2, 5, lower_closed=False, upper_closed=True)
# a,b 2
In [31]: 2 in a, 2 in b
Out[31]: (True, False)
# a,b 5
In [32]: 5 in a, 5 in b
Out[32]: (True, True)
例3:区間併合、交叉判定、近隣判定
In [33]: c = Interval(1,3, lower_closed=False)
In [34]: d = Interval(3,5, lower_closed=False)
#
In [35]: 1 in c, 3 in d
Out[35]: (False, False)
#
In [36]: e = c.join(d)
#
In [37]: 3 in e
Out[37]: True
In [39]: c
Out[39]: Interval(1, 3, lower_closed=False, upper_closed=True)
In [40]: d
Out[40]: Interval(3, 5, lower_closed=False, upper_closed=True)
# ,c、d
In [43]: c.overlaps(d)
Out[43]: False
# c、e
In [44]: c.overlaps(e)
Out[44]: True
# e、c
In [45]: e.overlaps(c)
Out[45]: True
#
In [52]: f = Interval(0, 1, upper_closed=False)
In [53]: g = Interval(1, 3, lower_closed=False)
In [54]: h = Interval(1, 3)
# f、g
In [55]: f
Out[55]: Interval(0, 1, lower_closed=True, upper_closed=False)
In [56]: g
Out[56]: Interval(1, 3, lower_closed=False, upper_closed=True)
In [57]: h
Out[57]: Interval(1, 3, lower_closed=True, upper_closed=True)
# f、g
In [58]: f.adjacent_to(g)
Out[58]: False
In [59]: g.adjacent_to(f)
Out[59]: False
# f、h
In [60]: f.adjacent_to(h)
Out[60]: True
#
In [61]: i = Interval(0,2)
#
In [62]: h.adjacent_to(i)
Out[62]: False
#
In [63]: j = Interval(2, 3)
#
In [64]: i.adjacent_to(j)
Out[64]: False
# , :1、 2、 , ,
注:区間解釈
数学区間とはある範囲を指す.全開区間、全閉区間、半開半閉区間、半閉半開区間に分類される.全開区間:符号は()であり、端点を含まない区間を指す.例えば(2,4)、実数範囲内が2より4より大きい実数を表す.全閉区間:符号を[]とし、端点を含む区間、例えば[2,4]を指し、実数範囲内が2以上4以下の範囲内の実数を表す.半開半閉区間:最小データを含まない端点を示す記号()であり、最大データを含む端点を含む区間を指す.例えば(2,4)、実数範囲が2以上4以下の実数を示す.半閉半開区間:記号が[)であり、最大データを含まない端点を含む区間を指す.例えば(2,4)は、実数範囲が2以上4未満の実数を示す.
[a,b] a<=x<=b a、b
(a,b) a