■
http://www.planarity.net/game.php
コレ,正解が存在することをどうやって保証しているのだろう.
1つのノードから伸びるエッジは(見た限りでは)2〜4本,ノードの数はLv nで個だとすると,
これを解いて,
検証
エッジが重なるってどういうことだろう.2つのエッジは4つのノードから構成される.3つのノードから構成される2つのエッジの組は重ならないと考えてもいいだろう*1.4つのノードの2次元座標値は8個の値の組になる.……多いなぁ.
うーん.ベクトルで考えたほうがよさそうだな.(ベクトル+始点座標)×2で,パラメータは結局8個だけど.内積から角度(の余弦)を取ってきて,あとは長さと始点座標の関係で計算できるのかな.余弦が1もしくは-1なら,平行だから,重ならないのは自明だけど.
2つのベクトルa,bを考える.で,ベクトルbの,ベクトルaを含む直線へ垂直な直線への射影の長さが得られる.bの始点からaのベクトルを含む直線までの距離が分かれば,交差する可能性があるかどうかがわかる.もし,射影の長さのほうが長いならば,あとはaの始点位置によって,判定できるはず.
うーん.いろいろ忘れてるな.自力で計算するのは骨だ.一応高校生レベルくらいなのかな.もっと簡単な解き方を見つければ中学生でも解けそうだけど.
*1:その3つのノードが同一直線上にあり,エッジのつながりから見て中央のノードを端に配置すれば重なるけれども,そこまで考える必要はなさそう.