2012-06-14 60 views
0

Python中用於計算區間重疊大小的最簡潔方法是什麼?區間重疊大小

overlap([a, b], [c, d])如果區間相同,則N應該返回0但不相同(其中N重疊),如果它們不重疊則返回無。

謝謝。

編輯overlap是誤導我的意思是間隔不重疊的大小。所以0是相同的。

+2

http://stackoverflow.com/questions/2953967/built-in-function-for-computing-overlap-in-python? – sjr

+1

如果間隔相同,爲什麼要返回0?這似乎與間隔重疊時返回N不一致,但不相同。 –

+1

請舉例說明一些重疊。它將澄清這個問題。 – damned

回答

2

它沒有得到更簡潔比由SJR鏈接到問題接受的答案,但:

def overlap(a,b,c,d): 
    r = 0 if a==c and b==d else min(b,d)-max(a,c) 
    if r>=0: return r 

也會爲相同的時間間隔和無要求返回0,非重疊的時間間隔。

+0

0應該返回相同的時間間隔,而不是「無」。另外,你寫的函數將會返回'None'作爲任何輸入。 – WolframH

+0

@WolframH:對,固定。 – Junuxx