学生の方格子点の問題が出てくると、何一つできずに終わっちゃうんだよね。
入試問題でよく見かける「格子点の個数」の問題。
とても複雑に見えますが、実は基本的な流れはいつも同じです。
この記事では、領域内の格子点の個数を求める問題の解き方をわかりやすく解説します。
少し応用パターンの、場合分けが必要になる問題にも触れます。
これを読めば、格子点も怖くない!

粗茶
- 文系に特化して数学を分かりやすく教える高校数学の専門家
- 指導歴15年
- 数学が苦手で何から始めたらいいか分からない文系高校生の悩みを解決するコンテンツを展開しています。

格子点とは、x座標とy座標がともに整数である点
学生の方そもそも、格子点ってどんな点なの?
格子点とは、「x座標とy座標がともに整数である点」のことをいいます。
例えば(1,2)とか(-3,5)みたいな点が格子点ですね。
格子点を座標平面上に並べると、次のようになります。

学生の方これって、点が光って見えるやつじゃない?
粗茶さんそんな錯覚の画像あるけど、たまたま似てるだけです。
そして、縦と横に等間隔に引いた(格子状に引いた)直線の交点になっていることから、格子点と呼ばれているのです。

格子点が何であるかは、大抵の問題では説明してくれていますが、説明なしで「格子点」という言葉が使われている問題も時々あるので、意味は知っておきましょう。
領域内の格子点を数える問題
格子点の問題として出題されるのは、基本的に「領域内の格子点の数」を扱う問題です。
他のパターンもあるっちゃあるんですが、領域内の格子点が数えられれば、とりあえずOKでしょう。
次の領域に含まれる格子点の個数をそれぞれ求めよ。
\begin{array}{ll}
(1)&x\geqq 0,y\geqq 0,x+y\leqq 3\\\\
(2)& x\geqq 0,y\geqq 0,x+y\leqq 10\\\\
(3)& x\geqq 0,y\geqq 0,x+y\leqq n(nは自然数)\\\\
\end{array}格子点が少ない時は図示して数えればいい
まずは(1)からいきましょう。
領域x\geqq 0,y\geqq 0,x+y\leqq 3内に含まれる格子点の個数
粗茶さん領域の描き方は大丈夫かな?
学生の方領域は、こんな感じで。境界線上の点も含むよ。

粗茶さんそうだね。この領域内にある格子点を書き入れると、こんな風になります。

学生の方で、この点の数を数えればいいってことね。
図より、求める格子点は10個。
領域を正しく図示して、格子点の個数を数えていくというのが基本の解き方です。
格子点の数が多い時は、数列の和を利用する
続いて(2)をやってみます。
領域x\geqq 0,y\geqq 0,x+y\leqq 10内に含まれる格子点の個数
学生の方x+y\leqq 10だと、格子点の数が多くなりそうだから、数えるのはちょっと…
格子点の数が多い場合は、縦に区切って数えていくことが有効です。
全部数えられないこともないのですが、ちょっと多すぎるのではないかと思います。
そこで、直線x=0上の格子点、x=1上の格子点、…、x=10上の格子点をそれぞれ考えて合計することにしてみましょう。
x=0上の格子点を数えると、11個。隣のx=1上の格子点は、1つ減って10個。さらに隣のx=2上には9個…
というふうに、xが1増えると、格子点が1個減っていくことがわかります。

x=0上の格子点が11個で、最後のx=10上の格子点は1個。
xが1増えると格子点の個数も1個減っている(等差数列である)ので、求める格子点の個数は、
11+10+9+\cdots+1
つまり、初項11、末項1、項数11の等差数列の和
ということがわかるので、こちらの公式を使って、
初項a,末項l,項数nの等差数列の和S_nは、
S_n=\cfrac{n}{2}(a+n)\cfrac{11}{2}\cdot(11+1)=66ということで、格子点は66個になります。
nが入っている場合は、x=k上の格子点を数えて、シグマで計算
そして、問題は(3)だと思います。
領域x\geqq 0,y\geqq 0,x+y\leqq n(nは自然数)内に含まれる格子点の個数
学生の方nが出てくると途端にやる気を無くすわ…
nが入っていても、縦に区切って数えるというアプローチは同じです。
直線x=k上の格子点の数をkの式で表して、シグマで合計しましょう。
直線x=k上の格子点は、(k,{\color{red}1}),(k,{\color{red}2}),(k,{\color{red}3}),\cdots,(k,{\color{red}-k+n})の-k+n個に、(k,0)を合わせて合計-k+n+1個。

例えば、この-k+n+1のkに0を代入すれば、x=0上の格子点の個数が出ます。
実際にやってみると、x=\color{red}0上の格子点は-{\color{red}0}+n+1(個)ということ。
粗茶さん「-0」は無くていいんですが、今回はあえて残しておきます。
同様にして、
x=\color{red}1上の格子点は-{\color{red}1}+n+1(個)、
x=\color{red}2上の格子点は-{\color{red}2}+n+1(個)、
と、ずっと続けていくと、最後は
x=\color{red}n上の格子点は-{\color{red}n}+n+1(個)
ってなります。
求めたい格子点の数は、これらの合計なので、
(-{\color{red}0}+n+1)+(-{\color{red}1} +n+1)+(-{\color{red}2} +n+1)+\cdots +(-{\color{red}n} +n+1)となりますが、赤色の数字の部分は0,1,2,…,nと1つずつ増えているので、シグマでまとめることができますね。
よって、格子点の数は、
\sum^{n}_{k=0}(-k+n+1)シグマの計算公式は、k=1からの場合に使えるので、k=0の場合の値(-0+n+1)は分けて、残りのk=1からnまでをシグマの公式で計算します。ということで、
\begin{array}{ll}
&\displaystyle{\sum^{n}_{k=0}(-k+n+1)}\\\\
=&(-0+n+1)+\displaystyle{\sum^{n}_{k=1}(-k+n+1)}\\\\
=&(-0+n+1)-\displaystyle{\sum^{n}_{k=1}k}+ \displaystyle{\sum^{n}_{k=1}(n+1)}\\\\
=&(n+1)-\cfrac{1}{2}n(n+1)+n(n+1)\\\\
=&\cfrac{1}{2}(n+1)(2-n+2n)\\\\
=&\cfrac{1}{2}(n+1)(n+2)
\end{array}これで完成。
n=k上の格子点の数をkで表して、シグマで合計する
というのが、格子点の問題の基本的なアプローチになります。
今回の(3)においては、x=0上の格子点がn+1個、x=1上の格子点がn個、…、x=n上の格子点が1個で、求める格子点の数は、
初項\color{green}n+1、末項\color{blue}1、項数\color{red}n+1の等差数列の和
とみなすこともできるので、(2)と同様にして、
\cfrac{1}{2}({\color{red}n+1})\{({\color{green}n+1})+{\color{blue}1}\}=\cfrac{1}{2}(n+1)(n+2)でもOK。
粗茶さんこの後紹介する問題みたいに、単純な等差数列になっていない時には使えないので注意してね。
場合分けが必要な格子点の問題
すこし応用編をやってみましょう。
nを自然数とする。
x\geqq 0,y\geqq 0,x+2y\leqq 2n
をみたす領域内の格子点の個数を求めよ。
学生の方領域を描いて、x=k上の格子点を数えればいい?
基本的なアプローチは同じなので、とりあえず図を描いてみましょう。
こんな感じになりそうです。

直線x=kと直線x+2y=2nの交点を求めると\left(k,\cfrac{2n-k}{2}\right)なので、x=k上の格子点は、
(k,0),(k,1),…,\left(k,\cfrac{2n-k}{2}\right)の、\cfrac{2n-k}{2}+1(個)で良さそうな気がしますが、
x=kと斜めの直線(今回はx+2y=2n)の交点の座標に分数がある場合は、注意が必要です。
kが偶数の場合、例えばk=6を考えてみると、交点のy座標は、
\cfrac{2n-6}{2}=n-3のように、整数になるので、x=kとx+2y=2nの交点は格子点になります。
なので、kが偶数の場合は、x=k上の格子点は、先ほど考えたように、
(k,0),(k,1),…,\left(k,\cfrac{2n-k}{2}\right)の、\cfrac{2n-k}{2}+1(個)となります。

一方、kが奇数、例えばk=5を考えてみると、交点のy座標は、
\cfrac{2n-5}{2}となって、整数ではないので、x=kとx+2y=2nの交点は格子点ではなくなります。
なので、kが奇数のときは、x=k上の格子点のうち、一番上にあるもののy座標は、\cfrac{2n-k}{2}以下の最大の整数ということになります。

学生の方でも、そんな整数、どうやって求めるの?
\cfrac{2n-k}{2}以下の最大の整数ですが、意外と簡単です。
kが奇数のとき、2n-kは奇数になりますよね。

\cfrac{2n-k}{2}は、奇数を2で割ったものなので、2.5とか3.5みたいに、整数+\cfrac{1}{2}の形をしています。
ということは、\cfrac{2n-k}{2}から\cfrac{1}{2}を引いた数、つまり\cfrac{2n-k}{2}-\cfrac{1}{2}が、\cfrac{2n-k}{2}以下の最大の整数になるというわけです。
ということで、kが奇数の場合、x=k上の格子点は、
(k,0),(k,1),…,\left(\cfrac{2n-k}{2}-\cfrac{1}{2}\right)で、

個数は、
\cfrac{2n-k}{2}-\cfrac{1}{2}+1=\cfrac{2n-k}{2}+\cfrac{1}{2}(個)ということになります。
長かったですが、x=k上の格子点の個数は、
\left\{
\begin{array}{ll}
kが偶数のとき,\cfrac{2n-k}{2}+1(個)\\\\
kが奇数のとき,\cfrac{2n-k}{2}+\cfrac{1}{2}(個)
\end{array}
\right.となります。
そして、これをkが0から2nまで合計するのですが、これもkが偶数のときと奇数のときで分けて計算して、あとで足します。
まず、kが偶数のとき、k=2m\quad(0≦m≦n)となるので、x=k(=2m)上の格子点の個数は、
\cfrac{2n-2m}{2}+1=n-m+1=-m+n+1なので、シグマで合計すると、
\begin{array}{ll}
&\displaystyle\sum^{n}_{m=0}(-m+n+1)\\\\
=&\displaystyle(-0+n+1)+\sum^{n}_{m=1}(-m+n+1)\\\\
=&\displaystyle(-0+n+1)-\sum^{n}_{m=1}m+\sum^{n}_{m=1}(n+1)\\\\
=&(n+1)-\cfrac{1}{2}n(n+1)+n(n+1)\\\\
=&\cfrac{1}{2}(n+1)(2-n+2n)\\\\
=&\cfrac{1}{2}(n+1)(n+2)
\end{array}次に、kが奇数のとき、k=2m-1\quad(1≦m≦n)となるので、x=k(=2m-1)上の格子点の個数は、
\cfrac{2n-(2m-1)}{2}+\cfrac{1}{2}=n-m+1=-m+n+1なので、シグマで合計すると、
\begin{array}{ll}
&\displaystyle\sum^{n}_{m=1}(-m+n+1)\\\\
=&-\cfrac{1}{2}n(n+1)+n(n+1)\\\\
=&\cfrac{1}{2}n(n+1)
\end{array}2つの答えを足して、求める格子点の個数は、
\begin{array}{ll}
&\cfrac{1}{2}(n+1)(n+2)+\cfrac{1}{2}n(n+1)\\\\
=&\cfrac{1}{2}(n+1)\{(n+2)+n\}\\\\
=&\cfrac{1}{2}(n+1)(2n+2)\\\\
=&(n+1)(n+1)\\\\
=&{\color{red}(n+1)^2}\quad\cdots(答)
\end{array}
学生の方これは、めんどくさい…。
斜めの直線との交点が分数になる場合は、奇数と偶数に分ける必要が出てきますが、
このような場合でも、場合分けせずに解ける場合もあります。
学生の方それを先に言いなさいよ!
粗茶さんまあ、いろいろと事情がありまして…
横に区切ると楽な場合もある
いままで、直線x=k上の格子点を数えるということで説明してきましたが、別に縦の直線で区切らなきゃいけないってわけではございません。
この例題2の場合は、横の線、つまりy=k上の格子点を考えるようにすると、場合分けが不要になります。

x座標に注目して、y=k上の格子点は、
({\color{red}0},k),({\color{red}1},k),…,({\color{red}2n-2k},k)の、2n-2k+1個
になるので、これをシグマで合計して、
\begin{array}{ll}
&\displaystyle\sum^{n}_{k=0}(2n-2k+1)\\\\
=&\displaystyle(2n-2\cdot0+1)+\sum^{n}_{k=1}(2n-2k+1)\\\\
=&\displaystyle(2n+1)+\sum^{n}_{k=1}(-2k+2n+1)\\\\
=&\displaystyle(2n+1)+-2\sum^{n}_{k=1}k+\sum^{n}_{k=1}(2n+1)\\\\
=&\displaystyle(2n+1)+-2\cdot\cfrac{1}{2}n(n+1)+n(2n+1)\\\\
=&2n+1-n(n+1)+n(2n+1)\\\\
=&n^2+2n+1\\\\
=&{\color{red}(n+1)^2}\quad\cdots(答)
\end{array}こっちのほうが明らかにラクですね。
状況をみて、縦に区切るか横に区切るか使い分けましょう。
まとめ
この記事では、領域内の格子点の個数を求める問題を解説しました。
基本的な流れは同じで、「直線x=k(またはy=k)上の格子点を数えて、それをシグマで合計する。ということになります。
複雑に見える問題ですが、順を追って丁寧に進めていけば怖くありません。
今回の解説を参考に、手持ちの問題集に載っている問題にも挑戦してみてくださいね。
このブログでは,自分で勉強しているとき,つまづきやすいポイントを解説。
「かゆいところに手が届く」情報を発信しています。
自分で勉強する際にオススメの参考書や,勉強が楽しくなる文房具も紹介していますので,よろしければご覧ください!



