ますぱら

代数とか、パズルとか、素数大富豪とか

パズルと不定方程式 ~立体編~

気づいたら6月になってました。前回の記事が5月7日だったので、ほぼ一か月ぶりの更新です。書きたいテーマはいくつもあるのでもっと書かなきゃなあと思います。

 

 

今日のテーマはこれです。現在、神保町のみらい研究所に置かせてもらっているパズルです。

 

f:id:K-Miura:20170604222310j:plain

 

二種類のピース、合計10個を箱に詰めるのが目的。ピース構成は以下のとおりです。

 

f:id:K-Miura:20170604183448j:plain

 

大きい方(以下「ピースA」と呼ぶ)が6単位分、小さい方(以下「ピースB」と呼ぶ)は4単位分のピースで、箱(一合升)は4×4×3=48単位分の直方体です。

 

6×4+4×6=48

 

なので、体積としてはぴったり。そしてなんと驚くことに、このパズルの解は対称なものを除くとただ一通りなのです(コンピュータで確かめました*1)。

 

でも、もしかすると、ピースAとピースBのそれぞれの個数を変えれば、この二種類で一合升をぴったり埋める方法が他にもあるかもしれない。今回は不定方程式を使って、この問題を考えていきます。

 

 

ピースAをa個、ピースBをb個使って一合升を埋めるとすると、

 

6a+4b=48

 

という等式が成立していなければなりません(今は「二種類のピースを使う」ということなので、a,bはともに正の整数とします)。

この不定方程式の解(a,b)は一通りではないですが、実はある工夫をすると、もっと強い条件を表す方程式を立てることができます。

 

f:id:K-Miura:20170604183534j:plain

 

この図は、各ピースと4×4×3の箱を、隣接する単位立方体が異なる色になるように青と緑で色付けした様子を表しています。一つの形に対して二つの塗り方がありますが、直方体については回転によって同じものだと分かります。

ここで、それぞれの形における青と緑の数を数えてみます。

まず、直方体の箱については当然、青と緑は24個ずつ。ピースAについても、(塗り方は二種類ありますがどちらも)青と緑が3個ずつです。しかしピースBは、「青1個と緑3個」または「青3個と緑1個」になっている。これが重要です。

 

塗り方の違うピースを別物と考えて、改めて

 

f:id:K-Miura:20170604183629j:plain

 

と呼ぶことにしましょう。すると、「AとBの二種類で一合升を埋める」という問題は「A_1,A_2,B_1,B_2を使って色が合うようにCを作る」という問題に置き換えられます。ただし、後者については「A_1とA_2は少なくとも一方は使う」「B_1とB_2は少なくとも一方は使う」という条件付きです。

 

使われるA_1,A_2,B_1,B_2の個数をそれぞれa_1,a_2,b_1,b_2とおくと、青の立方体の個数について

 

3(a_1+a_2)+b_1+3b_2=24\,\,\,\,\,\,\,\,\,\,\,\,(1)

 

という式が立ち、さらに緑の立方体の個数について

 

3(a_1+a_2)+3b_1+b_2=24\,\,\,\,\,\,\,\,\,\,\,\,(2)

 

が成り立つはず。ここでa_1,a_2は非負整数で少なくとも一方は正、b_1,b_2も非負整数で少なくとも一方は正です。この不定方程式を解いてみます。

 

 

まず、(1)からb_13の倍数であること、そして2式の差からb_1=b_2であることがわかるので、

 

b_1=b_2=3k

 

と書けます(kは正整数)。これを(1)に代入して両辺を3で割ると

 

(a_1+a_2)+4k=8 

 

が得られ、a_1+a_2,kは正なのでa_1+a_2=4,k=1(すなわちb_1=b_2=3)となります。つまり結局

 

(ピースAの個数)=a_1+a_2=4

(ピースBの個数)=b_1+b_2=6

 

が個数の組み合わせとしては唯一で、この二種類で一合升をぴったり埋める方法は他にはないことがわかりました。

 

 

なお、式(1)と式(2)を足し合わせると

 

6(a_1+a_2)+4(b_1+b_2)=48

 

となり、これは最初の不定方程式

 

6a+4b=48

 

と同じものです。なので(1),(2)式は、最初の式を「色分けによって精密化した」ものだと考えられます。この色分けの方法は平面だと市松模様と呼ばれる塗り方なので、今回のような議論は「市松理論」と呼ばれることもあるようです。岩澤理論みたいでかっこいいですね!

 

 

それでは今日はこの辺で。

*1:BurrToolsというソフトを使っています