点の数を数える
ある範囲にある点の数を数える問題は、よく入試でも出る問題です。また、物理や
化学で物質の状態数を数えるときもテーマになってきます。 まず、 平面上で点の
数を数えることを考えましょう。図1は三つの直線で囲まれた領域を示しています。
二つの直線の交点をそれぞれ、A、B、Cとします。三角形の境界とその内側にあ
る点の組み合わせを求めてみます。ただし、点の座標値は自然数であるとします
。
直線の式: Y=−5X+8(赤) Y=−X/4+7(ピンク) Y=X/2(緑)
(Functionviewで作成)
最初に、交点の座標を計算します。点A、点B、そして点Cの座標は以下のようにな
ります。
A=(16/11、8/11) B=(28/3、14/3) C=(4/19、132/19)
三角形ABCの周上にある点から数えてみます。線分CA上については、0<X<2
となるので、(1、3)の1点のみとなります。 線分AB上については、1<X<10とな
り、2の倍数であることを考えると、(2、1)、(4、2)、(6、3)、(8、4)の4点となりま
す。 線分BC上については、0<X<10となり、4の倍数であることを考えると、(4、
6)、(8、5)の2点となります。 したがって、 周上にある点の全数は、7点ということ
になります。
次に、三角形ABCの内部にある点の数を数えてみます。 X=1については、3<Y
<7となり、(1、4)、(1、5)、(1、6)の3点となります。X=2については、1<Y<7
となり、(2、2)、(2、3)、(2、4)、(2、5)、(2、6)の5点となります。X=3について
は、 1<Y<7となり、(3、2)、(3、3)、(3、4)、(3、5)、(3、6)の5点となります。
X=4については、2<Y<6となり、(4、3)、(4、4)、(4、5)の3点となります。X=
5については、2<Y<6となり、(5、3)、(5、4)、(5、5)の3点になります。X=6に
ついては、3<Y<6となり、(6、4)、(6、5)の2点となります。 X=7については、3
<Y<6となり、(7、4)、(7、5)の2点となります。 X=8については、4<Y<5とな
り、該当する点はありません。X=9についても、4<Y<5となり、該当する点はあり
ません。以上から、三角形ABCの内部にある点の全数は、3+5+5+3+3+2+
2=23点となります。
それでは、 半径が2の球の境界と内部にある点の数をそれぞれ数えてみてくださ
い。半径が3の球の場合はどうでしょうか。点の座標値は整数としてください。 また
、自然数に限定した場合はどうでしょうか。球の中心は原点とします。
直線で囲まれた領域に含まれる点の数をカウントするプログラムと球の内部にある
点(境界も含む)の数をカウントするプログラムを示します。 どちらも十進BASICを
使っています。
<直線で囲まれた領域のプログラム>
<球の内部を領域とするプログラム>