0

私はこれがより高校の数学であることを知っています(私がそこにいたときから長い時間が経ちました)が、私はこれをプログラムで解決しようとしているので、stackoverflowの集合的な知識に手を差し伸べています

このレイアウトを考えると:

代替テキスト

中点は私の基準点であり、配列には他のすべての点のベクトル点があります (P)

この状態に到達するには、水色の領域を 4 つの象限に分割し、ラメ バブル ソートを実行して各象限の最大値 (y) または最小値 (x) を見つけます。

外側の境界線が完全に赤く、空白がない象限のみを見つける必要があります。たとえば、左下と右上には、水色の長方形に当たる空白がありません。

私の用語はすべてここにあると確信しており、特定のコードを探しているわけではありませんが、誰かがこの問題のより最適化されたソリューションまたは私がすでに持っているものの次のステップを教えてくれれば.

ありがとうございました

4

2 に答える 2

0

私は最初にいくつかのBFIソリューションを実行し、次にそれを一般化するか、少なくともテーブルドライブループに縮小することを検討するかもしれません。

したがって、それがまさにこれらの形状であり、一般的な解決策ではない場合は、次のように進める必要があると思います。

  1. 青い長方形の座標を導き出します。あなたを混乱させているのは、青い長方形のxとyがそれぞれ個別にあるのに、それらを簡単にループできないことだと思います。

  2. 各長方形のエッジの中点の座標を導き出します。象限を気にするので、これが必要になります。1を実行したら、これを実行するのは簡単です。

  3. 1/2長方形のエッジごとに異なるコードを記述します。より賢い方法は間違いありませんが、これでコードが機能するようになります。

  4. 気になったら、今よりエレガントにしましょう。ルールを1、-1などでいっぱいの8行のテーブルに減らすことができると思います。

于 2009-09-06T19:23:15.020 に答える
0

まず、単一のベクトルで赤い領域を定義することはできません。これはバラバラであるためです。離れた赤い領域の数と同じ数のベクトルが必要です。

第二に、異なる赤い数字が交差したり、境界を共有したりしないと仮定しますか? 次の節で私はそうします。

第 3 に、ポイント 2 の仮定の下で、象限の両方の軸 (つまり光線) と交差する連続した赤い図形が存在する場合、象限はすべて赤い外側になります。すべての象限についてこれを決定するには、指定された順序ですべての (P) ポイントのみをトラバースする必要があります。これには線形時間がかかり、問題を解決します。

于 2009-09-06T19:58:23.107 に答える