2

ここで解決しなければならない興味深い問題があります。C# .NET 4.0 を使用していますが、数学の問題であるため、言語は関係ありません。

問題: N 次元のデータセットのギャップを特定し、それらのギャップがどこにあるかを正確にユーザーに報告する必要があります。

たとえば、3 次元で作業していると仮定すると、このオブジェクト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# コードに変換できることを望んでいました。

4

1 に答える 1

1

kd ツリーを使用します。これは、これらの種類のアプリケーション用にスペースを分割することを正確に意図しています。

于 2013-02-27T16:13:55.433 に答える