数学A 整数問題 問題 68 解説

方針・初手
格子点を通る直線上で、格子点から格子点への移動ベクトルを考える。2つの格子点を結ぶベクトルは成分が整数であるため、そのベクトルを何倍しても格子点に移る。この考えを用いれば、直線の傾きが定義できない垂直な場合も含めて処理できる。
解法1
(1)
直線 $l$ 上に異なる2つの格子点
$$ A(a,b),\quad B(c,d) $$
があるとする。ただし $a,b,c,d$ は整数であり、$A \ne B$ である。
このとき、$A$ から $B$ へのベクトルは
$$ \overrightarrow{AB}=(c-a,\ d-b) $$
である。$a,b,c,d$ は整数なので、$c-a$ と $d-b$ も整数である。
任意の整数 $n$ に対して、点 $P_n$ を
$$ P_n=A+n\overrightarrow{AB} $$
とおくと、
$$ P_n=(a+n(c-a),\ b+n(d-b)) $$
である。ここで $a,b,c-a,d-b,n$ はすべて整数だから、$P_n$ の座標はどちらも整数である。したがって、$P_n$ は格子点である。
また、$P_n$ は点 $A$ から直線 $AB$ の方向に進んだ点であるから、すべて直線 $l$ 上にある。
さらに、$A \ne B$ より
$$ (c-a,\ d-b)\ne(0,0) $$
である。したがって、異なる整数 $n$ に対して点 $P_n$ は異なる。よって、直線 $l$ 上には無限個の格子点がある。
以上より、直線 $l$ 上に格子点が2つ以上あるとき、$l$ 上には無限個の格子点がある。
(2)
直線 $l$ 上に無限個の格子点があるとする。このとき、直線 $l$ 上には少なくとも2つの異なる格子点があるので、それらを
$$ A(a,b),\quad B(c,d) $$
とする。
このとき、(1) と同様に
$$ \vec{v}=\overrightarrow{AB}=(c-a,\ d-b) $$
とおけば、$\vec{v}$ は成分が整数である零ベクトルでないベクトルであり、直線 $l$ の方向ベクトルである。
直線 $m$ は直線 $l$ と平行であるから、$\vec{v}$ は直線 $m$ の方向ベクトルとしても使える。
ここで、直線 $m$ 上に格子点が1つでもあると仮定し、それを
$$ C(e,f) $$
とする。ただし $e,f$ は整数である。
任意の整数 $n$ に対して、点 $Q_n$ を
$$ Q_n=C+n\vec{v} $$
とおくと、
$$ Q_n=(e+n(c-a),\ f+n(d-b)) $$
である。$e,f,c-a,d-b,n$ はすべて整数だから、$Q_n$ は格子点である。
また、$\vec{v}$ は直線 $m$ の方向ベクトルであり、$C$ は直線 $m$ 上の点であるから、すべての $Q_n$ は直線 $m$ 上にある。
さらに、$\vec{v}\ne(0,0)$ であるため、異なる整数 $n$ に対して $Q_n$ は異なる。したがって、直線 $m$ 上には無限個の格子点がある。
よって、直線 $m$ 上に格子点が1つでもあれば、$m$ 上には無限個の格子点がある。
したがって、直線 $m$ 上の格子点の個数は、$0$ 個であるか、無限個であるかのどちらかである。
解説
この問題の中心は、「2つの格子点を結ぶ方向ベクトルは整数成分をもつ」という点である。
傾きを使って考えると、垂直な直線の場合を別に扱う必要が出る。しかし、ベクトルを使えば、垂直な直線も水平な直線も同じ形で処理できる。
(2) では、直線 $l$ 上の2つの格子点から整数成分の方向ベクトルを作り、それを平行な直線 $m$ に移して使う。$m$ 上に格子点が1つでもあれば、そこから同じ方向ベクトルを整数倍だけ足すことで、無限個の格子点を作ることができる。
答え
(1)
直線 $l$ 上に格子点が2つ以上あるとき、2つの格子点を結ぶ整数成分の方向ベクトルを整数倍して進むことで、$l$ 上に無限個の格子点が存在する。
(2)
直線 $l$ 上に無限個の格子点があるとき、直線 $m$ 上に格子点が1つでもあれば、$l$ と同じ整数成分の方向ベクトルを用いて $m$ 上に無限個の格子点が作れる。したがって、$m$ 上には格子点がないか、または無限個の格子点がある。
自分の記録
誤りを報告
問題文の写しミス、解説の誤り、誤字、表示崩れに気づいた場合は送信してください。ログイン不要です。





