2
長方形の交点を数える
チャレンジ 任意の量の長方形を指定して、2D平面に描画されたときの長方形の交差の合計数を出力します。 ここでの交点Pは、互いに直交し、どちらもで終わっていない2本の線が交差する点として定義されPます。 例 ここでの各長方形は、最初に左上隅の座標、次に右下隅の座標を持つ2タプルで表されます。 [(-8,6)、(-4、-2)] [(-4,9)、(4,3)] [(2,10)、(14,4)] [(1,7)、(10、-6)] [(7,4)、(10,2)] [(5,2)、(9、-4)] [(-6、-4)、(-2、-6)] これらの長方形は、6つの交差点を作成します。これが出力でなければなりません。 上の画像からわかるように、長方形にタッチしても、ここでは交差が作成されず、カウントされません。 再タグ付けは、任意の形式でエンコードできます。使用する形式を明確にしてください。 複数の長方形が同じ点で交差する場合、それは1つの交差としてのみカウントされます。 座標は常に整数です。 入力に重複する長方形はありません。 入力として常に少なくとも1つの長方形を取得します。 この問題を直接解決するビルトインは使用できません。さらに、方程式を解くビルトインは使用できません。他のすべての組み込みは許可されます。 出力は、交差数を示す単一の整数でなければなりません。 ルール 機能または完全なプログラムが許可されています。 入力/出力のデフォルトのルール。 標準の抜け穴が適用されます。 これはcode-golfなので、最小のバイト数が優先されます。タイブレーカーは以前の提出です。 テストケース 上記の例と同じフォーマット。長方形はリストにラップされます。 [[(-8,6)、(-4、-2)]、[(-4,9)、(4,3)]、[(2,10)、(14,4)]、[(1 、7)、(10、-6)]、[(7,4)、(10,2)]、[(5,2)、(9、-4)]、[(-6、-4)、 (-2、-6)]]-> 6 [[(-2,2)、(6、-4)]]-> 0 [[(-12,10)、(-8,6)]、[(-14,6)、(-10,2)]、[(-10,6)、(-6,2)]]- > 0 [[(-4,10)、(6,2)]、[(-2,8)、(4,3)]、[(1,6)、(8,4)]、[(2,11 )、(5,5)]]-> 10 [[(8,2)、(12、-2)]、[(10,0)、(14、-4)]]-> 2 [[(0,2)、(2,0)]、[(0,1)、(3,0)]]-> 1 [[(-10、-2)、(-6、-6)]、[(-6、-2)、(-2、-6)]、[(-8、-4)、(-4、 -8)]]-> 3 ハッピーコーディング!