『右回り、左回り?』解答


◆広島県 清川 育男 さんからの解答。

2行2列の行列式の和で判定出来るのではないでしょうか。


◆静岡県 ヨッシー さんからの解答。

座標平面に、さらにz軸を加え空間座標とし、
A(a1,a2,0),B(b1,b2,0),C(c1,c2,0)とします。

ベクトル AB=(b1-a1,b2-a2,0),AC=(c1-a1,c2-a2,0)
について、外積 AB×AC を計算し、そのz座標が、
正:左回り、
負:右回り、
0:一直線上(2個以上の点が重なっている場合も含む)

実際に計算すると、
AB×AC=(0,0,(b1-a1)(c2-a2)-(b2-a2)(c1-a1))

z座標を取り出して展開すると、

b1c2-b1a2-a1c2+a1a2-b2c1+b2a1+a2c1-a1a2
=(a1b2-a2b1)+(b1c2-b2c1)+(c1a2-c2a1)

となり、清川さんのと、同じ結果になります。

参考:

2つのベクトル a=(a1,a2,a3),b=(b1,b2,b3) の外積は
a×b=(a2b3-a3b2,a3b1-a1b3,a1b2-a2b1)

交換法則は成り立たない。
その他の性質は省略。


◆出題者の広島県 浜田 昌宏 さんからの解答。

行列式や外積などが使えるとは気が付きませんでしたが、とてもシンプルな解答で、この問題にふさわしい美しい 解答だと感心しました。
ちなみに、私が用意していた中〜高校生レベルの解答はこうです。

点A(a1, a2), 点B(b1, b2) に対して、
点D(b1-(b2-a2), b2+(b1-a1)) とすると、
A→B→D は左回り。

直線ABに関して、点Cと点Dが同じ側にあるかどうかを調べればよいので、
直線ABの式を f(x, y)=0 とするとき、

f(C) * f(D) > 0 ならば、左回り。
f(C) * f(D) = 0 ならば、一直線上。
f(C) * f(D) < 0 ならば、右回り。

分かりやすい解答だと思いますが、美しさという点ではこれまでの解答に劣ると思います。


 『右回り、左回り?』へ

 数学の部屋へもどる