Loading web-font TeX/Math/Italic

2012年12月6日木曜日

格子点

「解答例を見ても,さっぱり・・・」
と質問を受けた.

x\geq0y\geq02x+3y\leq6n の領域に含まれる格子点の個数を求めよ.」

解答例には図も,考え方も解説されていなかった.
これは考え方がわからないと,解答例はなんにも役に立たないなぁ.
解答例は,偶数段目と奇数段目を別々に分けて数えている.図にするとそうするわけがわかるのだが.


まず,
2x+3y\leq6n
は直線 2x+3y=6n の下側である.

そして,直線 2x+3y=6n は,\frac{x}{3n}+\frac{y}{2n}=1 より,x軸上の切片が (3n,0)y軸上の切片が (0,2n)

ここで,「???」な感じになっていたので,直線について解説.
直線の方程式は最初は,「yが,x の関数」になっている形を習う.
傾きmy軸上の切片 k ならば,y=mx+k という寸法.
これって,yが,x の関数だから,変数としては対等ではなく,「xが偉くて,yが従っている感じ」を受けるし,「y軸に平行な直線」は傾きが存在しないから,表すことができない.

これを,2つの変数が対等にしたのが,「xyの1次方程式」の形 ax+by+c=0
ここまでは教科書に出ている.
もう一つ便利なのが,座標軸上の切片がわかる \frac{x}{p}+\frac{y}{q}=1.実際,x=0y=0
を代入すると,pq がそれぞれ切片になっていることがわかる.
もちろんこれは,原点を通る直線を表すことはできないけれど.

さて,n=1 のとき,\frac{x}{3}+\frac{y}{2}\leq0(3,0)(0,2) を結ぶ直線上とその下の格子点である.つまり,
□□□
□□□
の対角線上及びその下の格子点を数える.
上辺より1+2+4 となっている.

さて,n=2 のとき,\frac{x}{6}+\frac{y}{4}\leq0(6,0)(0,4) を結ぶ直線上とその下の格子点である.つまり,
□□□
□□□
□□□□□□
□□□□□□
の左上から右下に直線を引いて,直線上とその下にある格子点を数えると,上から
1+2+4+5+7
となっている.

このパターンで増えていくわけだが,この数列の規則性を考える.

n がひとつ増えると,2段増えるが,そのことで,格子点の数は,2段上よりも3個増える.
ということは,数列の奇数番目と偶数番目はどちらも「公差3の等差数列」である.これで奇数段目と偶数段目で分ける理由がわかる.それは「2段ずつ増えているから」といえる.
これが「5段ずつ増える」なら「5k+15k+25k+35k+45k」段目ごとに分けるとどれも等差数列になるわけである.これが「考え方」

実際,奇数段目は
1+4+7
だし,偶数弾目は,
2+5
となる.

1,4,7 は初項1,公差 3 で一般項は 3n-2
2,5 初項2,公差 3 で一般項は 3n-1

そして,n=2 のとき奇数段の項数は 3,偶数段の項数は2 だったから,
奇数段 3n-2 の項数は n+1,偶数段 3n-1 の項数は n

ということで,
奇数段の格子点の数は
初項1,末項3(n+1)-2,項数 n+1 より,
\frac{(1+3n+3-2)(n+1)}{2}=\frac{3n^2+5n+2}{2}

偶数段の格子点の数は
初項2,末項3n-1,項数 n より,
\frac{(2+3n-1)n}{2}=\frac{3n^2+n}{2}

それらの合計は
\frac{6n^2+6n+2}{2}=3n^2+3n+1
これが答え.

したがって,n=1, \cdots, 10 のときの格子点の数は
1+2+4=7,
1+2+4+5+7=19,
1+2+4+5+7+8+10=37,
1+2+4+5+7+8+10+11+13=61,
1+2+4+5+7+8+10+11+13+14+16=91,
1+2+4+5+7+8+10+11+13+14+16+17+19=127,
1+2+4+5+7+8+10+11+13+14+16+17+19+20+22=169,
1+2+4+5+7+8+10+11+13+14+16+17+19+20+22+23+25=217,
1+2+4+5+7+8+10+11+13+14+16+17+19+20+22+23+25+26+28=271,
1+2+4+5+7+8+10+11+13+14+16+17+19+20+22+23+25+26+28+29+31=331

0 件のコメント:

コメントを投稿

スパム対策のため,コメントは,承認するまで表示されません。
「コメントの記入者:」は「匿名」ではなく,「名前/URL」を選んで,なにかニックネームを入れてください.URL は空欄で構いません.