两个数字范围的相似性百分比

时间:2018-01-30 23:55:46

标签: c#

我试图获得两个数字范围的百分比相似性或重叠。

例如,考虑范围[10,1]和[5,1]。范围[5,1]覆盖范围[10,1]的50%,范围[100,50]覆盖[10,1]的0%。

编辑:忘了陈述问题。我该怎么做?

1 个答案:

答案 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();

两种情况的输出

enter image description here