格子圖形中的格子直線數
范谷瑜 · 林鳳美
在 k 維空間中, 由 k 個整數為坐標的點 (x1, x2, . . . , xk) 稱為格子點。 以格子點為頂 點的圖形稱為格子圖形。 皮克 (Pick, 1859∼1942) 在 1899 年提出一個計算格子單純多邊形 (simple polygon) 的面積公式, 這公式僅需要知道多邊形中邊上及內部格子點的個數就可算出 面積, 這是一個簡單又實用的計數方式。
本文選定某些特定格子圖形作探討, 計算通過特定格子圖形內所有點所需的格子直線之個 數, 此個數簡稱格子直線數。 注意本文所談的格子直線必過原點 O 且過非原點的格子點所成的 連線。 首先選定特定格子圖形是平面上的格子三角形, 計算格子直線數中, 進而探究出歐拉函數 (totient function) 的恆等式 (異於 (1) 式的式子)。 為了推廣, 將歐拉函數記作 ϕ1(n), 其中
ϕ1(n) 表示為不大於 n 且與 n 互質的正整數個數且 ϕ1(1) = 1, 而歐拉函數 ϕ1(n) 的推廣為喬丹函數 (Jordan’s totient function), 記作 ϕk(n), 即
ϕk(n) = nk 1 − 1
pk1
1 − 1 pk2
· · · 1 − 1
pkm
, 其中 ϕk(1) = 1, (1) p1, . . . , pk 為質因數。 注意 (1) 式中 k = 1 時, 指常見的歐拉函數 ϕ1(n)。
本文遵循歐拉函數出發與類推, 再配合平面至空間類推概念, 首先選定平面上的格子正方 形及空間中的格子立方體來同步探究, 逐步發現其一般的規律, 因而擴充得到格子 k–超立方體 (k-hypercube) 的喬丹函數之恆等式, 驚喜地推導出兩個恆等式。
從選定某些特定圖形中, 配合特例, 進而發現規律到一般化的論證過程, 都富有創造性的 思考啟發性, 值得追根究柢。
1. 歐拉函數的恆等式
甲、 問題探原
歐氏幾何告訴我們 「相異兩點決定一直線」, 由於同一條格子直線上有無限多個非原點的 格子點型如:
(x1, x2, . . . , xk), (2x1,2x2, . . . ,2xk), . . . , (dx1, dx2, . . . , dxk), 其中 d 為正整數。
事實上, 此格子直線可由原點 O 與非原點的格子點 (x1, x2, . . . , xk) 所決定。
換言之, 所決定非原點的格子點為滿足 gcd(x1, x2, . . . , xk) = 1 的格子點。 因此, 非原點 的格子點滿足 gcd(x1, x2, . . . , xk) = 1 的個數等於格子直線數。
例 1: 計算圖 1 中底與高皆為 3 的格子三角形中格子直線數為 1 +
3
X
i=1
ϕ1(i)。
解答: 用描點法可知格子直線是由原點 O 分別與格子點 (1, 0), (1, 1), (2, 1), (3, 1), (3, 2) 五 點連線所決定, 所以格子直線數為 5。
O x
y
(1, 0)
(1, 1) (2, 1)
(3, 2) (3, 1)
圖 1 : 底與高皆為3的格子三角形
我們不妨考慮將圖 1中格子三角形之格子直線數以歐拉函數 ϕ1(n) 來表示, 這絕對可辦到 的。 因為非原點的格子點滿足 gcd(x1, x2, . . . , xk) = 1 的個數等於格子直線數, 而 gcd(x1, x2)
= 1 這概念正符合歐拉函數, 建構方式是將非原點的格子點用直線 x = i 上來區分 (i = 1, 2, 3), 分成三類:
(i) 在直線 x = 1 上 : 包含格子點有 (1, 0) 與 (1, 1)。 由於 gcd(1, 0) = 1, 可決定一條格子 直線, 方便推廣將此格子直線數特別定義為 ϕ0(1) = 1。
又由於 gcd(1, 1) = 1, 可決定一條格子直線, 此格子直線數視為 ϕ1(1) = 1。
(ii) 在直線 x = 2 上 : 滿足 gcd(2, x2) = 1 的格子點僅有 (2,1), 可決定一條格子直線, 此 格子直線數視為 ϕ1(2) = 1。
(iii) 在直線 x = 3 上 : 滿足 gcd(3, x2) = 1 的格子點有 (3, 1), (3, 2), 可決定二條格子直 線, 此格子直線數視為 ϕ1(3) = 2。
因此, 由 (i)∼(iii) 知底與高皆為 3 的格子三角形中的格子直線數為
ϕ0(1) + ϕ1(1) + ϕ1(2) + ϕ1(3) = 1 +
3
X
i=1
ϕ1(i)。
由例 1 給我們二個啟發:
一、 可用歐拉函數 ϕ1(n) 來協助計算格子三角形中的格子直線數。
二、 在平面上, 由格子點 (n, 1), (n, 2), . . . , (n, t), . . . , (n, n) 所成線段, 此線段上滿足 gcd(n, t) = 1 的格子點個數為 ϕ1(n), 其中 n ≥ 2, t = 1, 2, . . . , n。
當然將格子點 (n, t) 改為 (t, n) 也成立。
同理, 推廣至 k 維空間中, 歐拉函數 ϕ1(n) 可視為滿足 gcd(n, n, n, . . . , t) = 1 的格子 點 (n, n, n, . . . , t) 之個數, 其中 t = 1, 2, 3, . . . , n。
當然將格子點 (n, n, n, . . . , t) 改為 (n, n, . . . , t, n)、 · · · 、 (t, n, n, . . . , n) 均成立。
乙、 計數格子直線數
給定圖 1 中的格子三角形一般定義:
定義 1: 在平面上, 滿足 0 ≤ x2 ≤ x1 ≤ n 的所有格子點所成的集合, 稱為底與高皆為 n 的 格子三角形, 記作 S([0, n]2), 參見圖 1 中格子三角形 S([0, 3]2)。 令 a2(n) 表示過原點且過在 S([0, n]2) 中非原點的格子點之格子直線數。
O x
y
(3, 2) (3, 1)
O x
y
(2, 1)
O x
y
(1, 1)
圖 2 : 格子三角形
例 1 中想用歐拉函數來協助計算格子直線數, 於是定義在 S([0, n]2) 而不在 S([0, n−1]2) 滿足 gcd(x1, x2) = 1 的格子點稱為新增格子點, 連接原點 O 與新增格子點的直線稱為新增格 子直線, 即新增格子直線數為 a2(n)−a2(n−1)。 又從例 1 中得知 a2(n)−a2(n−1) = ϕ1(n), 參見圖 2, 即
a2(n) = a2(n − 1) + ϕ1(n), 其中 ϕ1(1) = 1。 (2) 如此一來, 歐拉函數 ϕ1(n) 可視為
S([0, n]2) 而不在 S([0, n − 1]2) 的新增格子點之個數。
同樣地, 當後面計算在格子 k-超立方體中的格子直線數也是類推如 (2) 式的遞迴關係來 協助計數。
定理1: (計算在格子三角形中的格子直線數)設 a2(n) 為在格子三角形 S([0, n]2) 中的格子直 線數, 則 a2(n) = 1 +Pn
i=1
ϕ1(i)。
證明: 由 (2) 式知 a2(n) = a2(n − 1) + ϕ1(n)。 由遞迴關係可求得 a2(n) = a2(1) + ϕ1(2) + ϕ1(3) + · · · + ϕ1(n)。
又 a2(1) = 2, ϕ1(1) = 1 所以
a2(n) = 1 + (ϕ1(1) + ϕ1(2) + · · · + ϕ1(n)) = 1 +
n
X
i=1
ϕ1(i)。
2. 喬丹函 數的恆等式
甲、 推導恆等式 (I)
前面推導歐拉函數 ϕ1(n) 的恆等式是針對滿足 gcd(n, t) = 1 的格子點個數, 其中 t = 1, 2, 3, . . . , n。 根據平面至空間類推概念, 可猜測喬丹函數 ϕk(n) 的恆等式也可針對滿足 gcd(x1, x2, . . . , xk, n) = 1 的格子點 (x1, x2, . . . , xk) 個數, 不妨採用格子正方形及格子立方 體來思考是否可推導出 ϕ2(n) 與 ϕ3(n), 然而其推廣圖形即格子 k-超立方體, 定義為
定義 2: 在 k 維空間中, 若滿足 m ≤ xi ≤ n (i = 1, 2, . . . , k) 的所有格子點形成的集合, 記 為 [m, n]k, 其中 m, n 為整數。 當 m = 0, n > 0 時, 則 [0, n]k 是一個邊長為 n 的格子 k-超 立方體 (k-hypercube), 含有 (n + 1)k 個格子點, 參見圖 3 與圖 4。 當 n = 0 時, 則 [0, n]k 恰含一個唯一的格子點, 就是原點 O(0, 0, . . . , 0)。
O x
y [0, 4]2
O x
y [1, 4]2
(4,4)
(4,2) (2,4)
(2,2)
y x
z
圖 3 : 格子正方形 [0, 4]2 與 [1, 4]2 圖 4 : 格子立方體
我們可以考慮 [1, n]k 或 [0, n − 1]k, 底下就先從 [1, n]k 著手, 先觀察兩個特例。
例 2: 計算在 [1, 4]2 中滿足 gcd(x1, x2,4) = 1 的格子點 (x1, x2) 個數為 ϕ2(4)。
解答: 由定義 2 知 [1, 4]2 中含有 16 個格子點, 但若要滿足 gcd(x1, x2,4) = 1 的格子 點, 必須刪掉四個格子點 (2,2), (2,4), (4,2), (4,4), 所以得到 12 個格子點, 參見圖 3。 又 ϕ2(4) = 42
1 − 1 22
= 12, 故這樣的格子點個數剛好等於 ϕ2(4)。
例 3: 計算在 [1, 2]3 中滿足 gcd(x1, x2, x3,2) = 1 的格子點 (x1, x2, x3) 個數為 ϕ3(2)。
解答: 由定義 2 知 [1, 2]3 中含有 8 個格子點, 但若要滿足 gcd(x1, x2, x3,2) = 1 的格子點, 必須刪掉格子點 (2,2,2), 所以得到 7 個格子點, 參見圖 5。
又 ϕ3(2) = 23 1 − 1
22
= 7, 故這樣的格子點個數剛好等於 ϕ3(2)。
y x
[0,2]3
z
[1,2]3 (1,1,2)
(1,2,2) (2,2,2)
(1,2,1) (2,2,1) (2,1,1)
(1,1,1) (2,1,2)
圖 5 : 格子立方體 [0, 2]3 與 [1, 2]3
由例 2 與例 3 中可推測知喬丹函數 ϕk(n) 表示在格子 k-超立方體 [1, n]k 中滿足 gcd(x1, x2, . . . , xk, n) = 1 的格子點 (x1, x2, . . . , xk) 的個數。 特別是 [1, 1]k 含 1 個格子點, 不難看出 ϕk(1) = 1, 當 n > 1, 則有定理 2。
定理2: (喬丹函數的恆等式 (I)) 設 n 的標準分解式為 n = pa11·pa22· · · pamm, 其中 p1, p2, . . . , pm 為相異質數且 α1, α2, . . . , αm ∈ N, 若 ϕk(n) 為 k-超立方體 [1, n]k 中滿足
gcd(x1, x2, . . . , xk, n) = 1 的格子點 (x1, x2, . . . , xk) 的個數, 則 ϕk(n) = nk
1 − 1 pk1
1 − 1 pk2
· · · 1 − 1
pkm
, 其中 ϕk = 1。
證明: 底下就來證明 n > 1 的情形。 若 d 為 n 的正因數, 令 Md 是在 [1, n]k 中滿足坐標 x1, x2, . . . , xk 都是 d 的倍數的格子點 (x1, x2, . . . , xk) 所成的集合。
因為每個整數都是 1 的倍數, 得到 M1 = [1, n]k。
由於 (x1, x2, . . . , xk) ∈ Md 的充要條件為 xi ∈n
1d, 2d, . . . ,n d
do
, 所以 |Md| =n d
k
。 因此, 由取捨原理知
ϕk(n) =
[1, n]k− Mp1∪ Mp2 ∪ · · · ∪ Mpm
= [1, n]k
−X
1≤i≤m
|Mp1| + X
1≤i<j≤m
Mpi∩Mpj
−· · ·+(−1)m|Mp1∩Mp2∩· · ·∩Mpm|
= |M1| −X
1≤i≤m
|Mp1| + X
1≤i<j≤m
|Mpipj|−· · ·+(−1)m|Mp1p2···pm|
=n 1
k
−X
1≤i≤m
n pi
k
+ X
1≤i<j≤m
n pipj
k
−· · ·+(−1)m n pipj· · · pm
k
= nkn
1 −X
1≤i≤m
1
pki + X
1≤i<j≤m
1 pki · 1
pkj−· · ·+(−1)m 1 pki · 1
pkj · · · 1 pkm
o
= nk 1 − 1
pk1
1 − 1 pk2
· · · 1 − 1
pkm
.
乙、 推導恆等式 (II)
現在從 [0, n − 1]k 中推導喬丹函數的第二個恆等式, 先觀察一個特例:
例 4: 計算在 [0, 3]2 中滿足 gcd(x1, x2,4) = 1 的格子點 (x1, x2) 個數為 ϕ2(4)。
O x
y A
B
C
[1, 4]2 O x
y
P
[0, 3]2 Q 圖 6 : 格子正方形 [1, 4]2 與 [0, 3]2
解答: 考慮 [1, 4]2 與 [0, 3]2 中不重疊的格子點 (x1, x2), 參見圖 6, 在 [1, 4]2 中為 AB 與 BC 上的格子點, 而在 [0, 3]2 中為 OQ 與 OP 上的格子點。 由於 OP ≡ n(mod n), 所以 [1, 4]2 中 AB 與 BC 上滿足 gcd(x1, x2,4) = 1 的格子點 (x1, x2) 分別對應 OQ 與 OP 上 滿足 gcd(x1, x2,4) = 1 的格子點 (x1, x2), 所以在 [1, 4]2 中滿足 gcd(x1, x2,4) = 1 的格子 點 (x1, x2) 個數等於在 [0, 3]2 中滿足 gcd(x1, x2,4) = 1 的格子點 (x1, x2) 個數, 因此, 由 定理 2 知在 [0, 3]2 中滿足 gcd(x1, x2,4) = 1 的格子點 (x1, x2) 個數為 ϕ2(4)。
由例 4 可推論出k-超立方體 [0, n − 1]k 中 gcd(x1, x2, . . . , xk, n) = 1 的格子點個數 為 ϕk(n), 為了區別證明, 將 [0, n − 1]k 中 gcd(x1, x2, . . . , xk, n) = 1 的格子點個數記作 ϕ∗k(n), 於是 ϕ∗k(n) = ϕk(n)。
定理3:(喬丹函數的恆等式 (II)) 設 ϕ∗k(n) 為 k-超立方體 [0, n−1]k中 gcd(x1, x2, . . . , xk, n)
= 1 的格子點 (x1, x2, . . . , xk) 的個數, 則 ϕ∗k(n) = ϕk(n), 其中 ϕk(1) = 1 及 ϕ∗0(n) = (1, 當 n = 1
0, 當 n 6= 1。
證明: 當 n = 1 時, [0, n−1]k恰含唯一的格子點, 即原點 O = (0, 0, . . . , 0)。 又 gcd(0, . . . , 0, 1) = 1, 所以 ϕ∗0(1) = 1。 當 n 6= 1 時, gcd(0, . . . , 0, 1) 6= 1, 所以 ϕ∗0(n) = 0。 其餘的情形 仿照定理 2 來證明。 將定理 2 中n
1d, 2d, . . . ,n d
do 以 n
0, 1d, 2d, . . . ,n d − 1
do 取代, 並討論之, 同時也可以得到 ϕk(n) 也是在 [0, n − 1]k 中滿足條件 gcd(0, . . . , 0, 1) = 1 的格
子點個數。
3. 計數格子直線數
現在要採用喬丹函數來計算在 [0, n]k 中的格子直線數, 於是令 bk(n) 表示過原點且過在 [0, n]k中非原點的格子點之格子直線數。 定義在 [0, n]k而不在 [0, n−1]k滿足 gcd(x1, x2) = 1 的格子點稱為新增格子點, 連接原點 O 與新增格子點的直線稱為新增格子直線, 即新增格子 直線數為 bk(n) − bk(n − 1)。
(2) 式談到新增格子直線數 a2(n) − a2(n − 1) = ϕ1(n), 但此時 新增格子直線數 bk(n) − bk(n − 1) 6= ϕ∗k(n)。
這乃是類推至高階的妙趣所在, 就從一個特例一看究竟。
例 5: 計算在 [0, n]2 中的格子直線數為 b2(n) = 3 + C12
n
X
i=2
ϕ∗1(i)。
解答: 顯然在 [0, 1]2 中但不在 [0, 0]2 的新增格子直線數為 22− 1, 即 b2(1) = 3。
O x
y (1,4)
(4,1) (4,3) (3,4)
B
A(4, 0) C(0, 4)
1
1 y
x
z
A
B C D
E F
G
圖 7 : 計算 [0, n]2 的格子直線數 圖 8 : 計算 [0, n]3 的格子直線數
由圖 7 知新增格子點落在線段 AB 與 BC 上的格子點, 這些格子點型如:
(t, n) 及 (n, t) 等二種情形, 其中 0 ≤ t ≤ n。
又每種滿足 gcd(t, n) = 1 的格子點個數等於 ϕ∗1(n), 所以
b2(n) − b2(n − 1) = 2ϕ∗1(n), 即 b2(n) = b2(n − 1) + 2ϕ∗1(n)。
由遞迴關係可求得
b2(n) = b2(1) + 2(ϕ∗1(2) + ϕ∗1(3) + · · · + ϕ∗1(n))。
又 b2(1) = 3, 因此, b2(n) = 3 + 2
n
X
i=2
ϕ∗1(i), 方便推廣寫成 b2(n) = 3 + C12
n
X
i=2
ϕ∗1(i)。
底下要計數在 [0, n]3 中的格子直線數, 仿照例 5 的推導方式。
定理 4: (計算在 [0, n]3 中的格子直線數) 設 b3(n) 為在 [0, n]3 中的格子直線數, 則
b3(n) = 7 +
2
X
j=1 n
X
i=2
Cj3ϕ∗j(i)。
證明: 顯然在 [0, 1]3 中但不在 [0, 0]3 的新增格子直線數為 23 − 1, 即 b3(1) = 7。 底下 n ≥ 2 的情形, 欲求新增格子直線數 b3(n) − b3(n − 1), 即求新增格子點數。 由圖 8 知新增 格子點落在平面 DEF G、 ABF E 與 BCGF 上的格子點 (x1, x2, x3), 將 x1, x2, x3 排序 x(3) ≤ x(2) ≤ x(1) = n 分成互斥 2 類:
(i) 當 0 ≤ x(3) ≤ x(2) ≤ x(1) = n 時, 是指圖 8 中不含 BF 、 EF 及 F G 的平面 DEF G、
ABF E 與 BCGF 上的格子點。 又每種平面上的格子點個數為 ϕ∗2(n), 共有三種, 所以 新增格子直線數為 3ϕ∗2(n), 方便推廣可寫成 C23ϕ∗2(n)。
(ii) 當 0 ≤ x(3) ≤ x(2) = x(1) = n 時, 是指圖 8 中 BF 、 EF 及 F G 的上的格子點, 又每 種線段上的格子點個數為 ϕ∗1(n), 共有三種, 所以新增格子直線數為 3ϕ∗1(n), 方便推廣可 寫成 C13ϕ∗1(n)。
由 (i) 與 (ii) 知故 b3(n) − b3(n − 1) = C13ϕ∗1(n) + C23ϕ∗2(n), 即
b3(n) = b3(n − 1) +
2
X
j=1
Cj3ϕ∗j(n)。
由遞迴關係可求得
b3(n) = b3(1) +
2
X
j=1
Cj3ϕ∗j(2) +
2
X
j=1
Cj3ϕ∗j(3) + · · · +
2
X
j=1
Cj3ϕ∗j(n)。
又 b3(1) = 23− 1 = 7, 因此, b3(n) = 7 + P2
j=1 n
P
i=2
Cj3ϕ∗j(i)。
仿照定理 4 推廣至 k 維, 同樣地可用 ϕ∗1(n), ϕ∗2(n), . . . , ϕ∗k−1(n) 來計數格子直線數 bk(n), 參見定理 5。
定理 5: (計算在 [0, n]k 中的格子直線數) 設 bk(n) 為在 [0, n]k 中的格子直線數, 則 bk(n) = (2k− 1) +
k−1
X
j=1 n
X
i=2
Cjkϕ∗j(i)。
特別的, 考慮 0 維的情形, 可將式子再改寫成 bk(n) =
k−1
P
j=0 n
P
i=1
Cjkϕ∗j(i)。
4. 結語
本文探討某特定格子圖形中過原點的格子點的直線數, 若計數不採新增格子點方式來看, 相當困難的, 於是為了克服計算部分, 不停地在數量上做些改變, 驚喜地得到了喬丹函數的二個 恆等式, 因而在計數上化繁為簡。
這裡探究過程中正符合是古希臘哲學家蘇格拉底所採用的「產婆法」–知識是一種 「發現」, 強調 「引出」、 「誘發」, 從解決 「計算格子直線數」 這單純問題, 建構一套合理的論述, 再由數學 概念理解發展至理論化, 驚喜開拓了喬丹函數的數學世界, 也享受開啟數學知識的喜悅。
此外, 若配合由平面上格子三角形類推空間中格子三角錐來聯想, 理論上還可以擴充至格 子 k-單體 (simplex), 這圖形內格子點較特殊, 將成另一篇文章展現, 敬請期待, 有興趣讀者, 不妨試一試。
數學家拉普拉斯 (Laplace, 1749∼1827) 說:
讀 Euler, 讀 Euler, 他是我們全能的大師。
Read Euler, read Euler, he is the master of us all.
有人將歐拉比擬為數學界的莎士比亞 (the Shakespeare of Mathematics):
普世性, 鉅細靡遺, 取之不盡, 用之不竭。
Universal, richly detailed, and inexhaustible.
可見歐拉活在的每個數學角落裡, 他提出的數學創作值得我們永恆地拜讀, 甚至使之美麗。
本文是指導范同學參賽 2017 年台灣區國際科展作品 : 「格子直線數與歐拉函數之探討與 推廣」, 提及在特定格子圖形中利用喬丹函數來計算格子直線數, 這是一個美妙的發想。 有感指 導參賽作品內容複雜且難以閱讀, 於是改寫參賽作品中最精髓部分將它描述清楚, 使成為更清 晰可見的文章。 再者, 分享計數上一個不錯的結果, 也作為喬丹函數的應用範疇。 最後深深感謝 審稿教授對此文章的指正與建議, 使本文有更好論述的標題及內容。