数学A / 場合の数

格子点が作る正方形の総数

最難関編数え上げ1対1対応

問題

座標平面上の25個の格子点 ( 以上 以下の整数)のうちの4点を頂点とする正方形は、全部で何個あるか。辺が座標軸に平行なものだけでなく、傾いた正方形も数える。

ヒントを見る

傾いた正方形を手当たり次第に探すと、数え漏れも二重数えも止まらない。どんな傾いた正方形にも、それをぴったり囲む軸に平行な正方形が1つ付いてこないか。囲む枠ごとに数える発想に切り替えられるか。

解答・解説

方針

軸に平行な正方形はサイズごとに数えられる。傾いた正方形は、それを囲む「軸に平行な外接正方形」がただ1つ決まることを使う: 外接正方形を先に選び、その中に傾いた正方形が何個入るかを数える。

解答

⓪ 発想 — どう考え始めるか。 軸に平行な正方形は簡単だが、傾いた正方形は向きも大きさもばらばらで、直接数えると収拾がつかない。

そこで、どの傾いた正方形にも「外接する軸平行の正方形」がただ1つあることに注目する(4頂点のそれぞれを通る水平線・垂直線で囲めばよい)。逆に、1辺 の軸平行正方形の中には、下辺の分点の取り方1つにつき、傾いた内接正方形が1個できる。

この1対1対応で、「枠ごとに数える」方針に切り替える。

重要傾いた正方形 ⟷(外接する軸平行正方形, 辺上の分点の位置)の1対1対応。枠を先に数え、枠の中の自由度を掛ける

① 軸に平行な正方形。 1辺 ()のものは、左下の頂点の置き方から 個:

② 傾いた正方形。 1辺 の軸平行正方形を外接枠とする傾いた正方形は、下辺の分点を左から ()の位置に取るごとに1個(4頂点は各辺を に分ける点)。つまり枠1つにつき 個。

xyO133
傾いた正方形(実線)は、軸に平行な正方形(破線・1辺3)にぴったり内接する。下辺の分点(この図では x=1)の取り方が 1〜s−1 の s−1 通り

③ 合計する。 枠のサイズごとに

よって総数は

まとめ: ばらばらに見えるものは「必ず付いてくる枠」で分類する。外接正方形という枠を経由すると、傾いた正方形が(枠の位置)×(分点の位置)という2つの自由度に分解されて、漏れも重複もなく数えられる。

発展 — 一歩先へ。 ①と②は と1本にまとまる(枠1つにつき、まっすぐ1個+傾き 個で計 個)。 の格子でも同じ式 が通用する。 が大きくなるほど、傾いた正方形の割合が増えていくのも、この式から読める。

別解

辺ベクトルでパラメータ化する(得意な人向け)。 正方形を「1辺のベクトル」で名付けると、まっすぐも傾きも1つの式で数えられる。

正方形の1辺を、右上向きのベクトル ()で表す。 なら軸平行、 なら傾いた正方形だ。この正方形がちょうど収まる外接枠は1辺 の軸平行正方形で、枠の置き方は 通り。

よって総数は

( となる がちょうど 組あることを使った。)

「図形を、それを生成するベクトルで数える」と、場合分け(まっすぐ/傾き)が消えて1本の和になる。分類を減らす方向のパラメータ選びは、数え上げの設計の要だ。

ポイント

  • 軸平行は 個。
  • 傾いたものは外接枠(1辺 )1つにつき 個で計20個。
  • 総数は 個。

よくある間違い

  • 傾いた正方形の頂点が格子点になるかを確認せずに数える。外接枠の各辺を に分ける点は自動的に格子点、の一言が要る。
  • 対応の向きを混同する。枠1つに傾いた正方形は 個(多対1ではなく、分点の数だけ)。正方形から枠は1つ。
  • の枠に傾いた正方形を数え込む( 個)。小さい枠から具体的に確認する。