開始点と終了点(両方の浮動小数点数)によって定義される間隔が与えられたら、第2の間隔で交差範囲を決定したいと思います。たとえば、:2つの非離散間隔の交差範囲を取得
int1 = [2. , 5.]
int2 = [2.2, 7.]
>>> desired_function(int1, int2)
2.8
交差点の可能性(交差点、部分交差点、完全交差点、負の範囲など)はすべて処理する必要があります。私の試みは、次のようになります。
def intersection(int1, int2):
#case 1: partial intersection over the left or right border
if (int2[0]<=int1[0] and int2[1]<=int1[1]) or (int2[0]>=int1[0] and int2[1]>=int1[1]):
return min(int1[1],int2[1]) - max(int1[0],int2[0])
#case 2: complete overlap of one interval by the other
elif (int2[0]>=int1[0] and int2[1]<=int1[1]) or (int2[0]<=int1[0] and int2[1]>=int1[1]):
return min (int2[1]-int2[0] , int1[1]-int1[0])
#case 3: no overlap at all
else:
return 0
質問:私は何かを逃し、できるだけ簡単かつ迅速に自分のコードを維持したいので、似た何かを任意のビルド中の溶液またはパッケージがあることがありますか?あなたは物事があまりにも複雑作っている
感謝を!これは実際に私の最初のケースの 'return'ステートメントですが、私は何とか頑張ろうとしていましたが、これはすでにすべての可能性を処理していることに気付かなかった...複数の間隔 –