หากกำหนดให้ o แทนตัวหมาก และ x แทนช่องว่าง
จะสังเกตได้ว่า เราสามารถลดตัวหมากจาก 3m แถว n หลัก ให้เหลือเพียง 3m แถว 1 หลัก ได้เสมอ ดังนี้
Code:
...........
xxxxxxxxxxx
oooooooooox
oooooooooox
oooooooooox
oooooooooox
oooooooooox
xxxxxxxxxxx
...........
...........
xxxxxxxxxxx
oooooooooox
oooooooooox
oooooooooox
oooooooooox
ooooooooxxo
xxxxxxxxxxx
...........
...........
xxxxxxxxxxx
oooooooooox
oooooooooox
oooooooooxx
oooooooooxx
ooooooooxoo
xxxxxxxxxxx
...........
...........
xxxxxxxxxxx
oooooooooox
oooooooooox
oooooooooxx
oooooooooxx
oooooooooxx
xxxxxxxxxxx
...........
ทำแบบนี้ไปเรื่อยๆ จะได้
...........
xxxxxxxxxxx
oooooooooox
oooooooooox
oooooooooxx
oooooooooxx
oooooooooxx
xxxxxxxxxxx
...........
...........
xxxxxxxxxxx
oooooooooox
oooooooooox
ooooooooxxx
ooooooooxxx
ooooooooxxx
xxxxxxxxxxx
...........
.
.
.
...........
xxxxxxxxxxx
oooooooooox
oooooooooox
oxxxxxxxxxx
oxxxxxxxxxx
oxxxxxxxxxx
xxxxxxxxxxx
...........
หากกำหนดให้ s(m,n) แทนจำนวนหมากที่น้อยที่สุด ซึ่งเหลืออยู่บนกระดาน จากการวางหมาก m แถว และ n หลัก จะได้
s(m,n) = s(n,m)
s(1,n) = ceil(n/2)
s(2,n) = ceil(n/2)
s(3,n) = 2
s(3m,3n) = s(1,3m) เมื่อ m <= n
s(3m+1,3n) = s(1,3m+1) + s(1,3n-1) เมื่อ m < n; = s(1,3n) เมื่อ m >= n
s(3m+2,3n) = s(1,3m+2) + s(1,3n-1) เมื่อ m < n; = s(1,3n) เมื่อ m >= n
s(3m+1,3n+1) = s(1,3m+1) + s(1,3n) เมื่อ m <= n
s(3m+2,3n+1) = s(1,3m+2) + s(2,3n) เมื่อ m < n; = s(1,3n+1) + s(1,3m+1) เมื่อ m >= n
s(3m+2,3n+2) = s(1,3m+2) + s(2,3n+1) เมื่อ m <= n