我们需要在这里解决一个有趣的问题,我们使用的是C#.NET 4.0,但语言应该是无关紧要的,因为它是一个数学问题。
问题:我们需要确定N维数据集中的差距,并准确报告这些差距返回给用户的位置。
例如,我们假设我们正在使用3-D,因此我们将此对象Quote
包含6个属性:TermFrom, TermTo, AgeFrom, AgetTo, AmountFrom, AmountTo
和我们需要涵盖的边界:MinTerm = 0, MaxTerm = 5, MinAge = 0, MaxAge = 5, MinAmount = 0, MaxAmount = 5
。假设所有最小值都是0
,最大值是5
只是为了简化示例,尽管它们可能不同。因此,我们需要检查间隙的数据是以下数据集:
Quote[] {
{ TermFrom=0, TermTo=3, AgeFrom=0, AgetTo=4, AmountFrom=0, AmountTo=2 },
{ TermFrom=4, TermTo=5, AgeFrom=0, AgetTo=5, AmountFrom=3, AmountTo=5 }
此数据集包含组合的差距:{ Term: 0-5, Age: 4-5, Amount: 0-2 } and { Term: 0-3, Age: 0-5, Amount: 2-5 }, { Term: 4-5, Age: 0-5, Amount: 0-2 }
(我认为)
即。如果您想象一个立方体并且数据集是此立方体的一部分,则计算出的所有数据集的总体积必须等于立方体的体积。如果它的体积不够,我们需要确定这个立方体中的间隙在哪里。
所有这些都需要更多尺寸:4和5,但要想象的更难。我希望这个问题有某种数学解决方案,我们可以将其转换为c#代码。
答案 0 :(得分:1)
使用k-d树,正是为这些类型的应用程序划分空间。