Python区間ライブラリinterval


例1:区間の作成&左右の境界値の検証
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