gpt4 book ai didi

python - 两个数值范围之间的重叠分数

转载 作者:行者123 更新时间:2023-11-28 22:18:27 25 4
gpt4 key购买 nike

我想计算两个数值范围的重叠部分。让我用一个例子来说明我的问题,因为我相信它会更容易理解。

假设我有两个数值范围:

A = [1,100]
B = [25,100]

我想知道(和代码)的是 B 与 A 重叠多少,反之亦然(A 与 B 重叠多少)

在这种情况下,AB 重叠(作为 B 的一部分)100%,BA (作为 A 的一部分)增加 75%。

我一直在尝试用 python 编写代码,但我很挣扎,我找不到计算这两个分数的合适解决方案

到目前为止,我已经能够实现以下目标:

鉴于两个数值范围的开始和结束,我已经能够弄清楚这两个数值范围是否重叠(from other stackoverflow post)

我用下面的代码完成了这个

def is_overlapping(x1,x2,y1,y2):
return max(x1,y1) <= min(x2,y2)

谢谢!

最佳答案

这是一个没有 for 循环的快速解决方案:

def overlapping(x1,x2,y1,y2):
#A = [x1,x2]
#B = [y1,y1]

# Compute the B over A
if(x1 <= y1 and x2 >= y2): # Total overlapping
return 1
elif(x2 < y1 or y2 < x1):
return 0
elif(x2 == y1 or x1 == y2):
return 1/float(y2 - y1 + 1)
return (min(x2,y2) - max(x1,y1))/float(y2 - y1)

关于python - 两个数值范围之间的重叠分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50509625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com