我试图获得两个数字范围的百分比相似性或重叠。
例如,考虑范围[10,1]和[5,1]。范围[5,1]覆盖范围[10,1]的50%,范围[100,50]覆盖[10,1]的0%。
编辑:忘了陈述问题。我该怎么做?
答案 0 :(得分:2)
我会得到Count
的{{1}}并将其与我们感兴趣的范围的Intersection
进行比较,例如:
Count
当然这适用于任何可比较对象集合,而不仅仅是连续数字的范围......
var firstRange = Enumerable.Range(1, 10);
var secondRange = Enumerable.Range(1, 5);
var secondPercentCoverageOfFirst =
(double)firstRange.Intersect(secondRange).Count() / firstRange.Count() * 100;
Console.WriteLine($"{secondPercentCoverageOfFirst:0.00}%");
Console.Write("\nPress any key to exit...");
Console.ReadKey();
两种情况的输出