Weekend Mathematics/問題/108の問題
108.サイコロころがし
[図1]のような4×4の盤の上に、目一つ分の大きさのサイコロを置き、これをすべらないようにころがしていって左下(★印)の目に達したときに、出ている目が、「1」になるようなコースを探してください。 ただし、一度通過した目を二度通ってはいけません。なお、使うサイコロは、底面を少し広げて描くと[図2]のように表される。
答えは、サイコロをころがす盤のアルファベットを順番に答えてください。
三次元数学パズル
高木茂男
講談社ブルーバックス
解答・その1
(ペンネ−ム:teki)
<答え>
(1) C→B→A→D→E→I→J→F→G→K→N→M→L
(2) G→K→N→M→J→I→E→F→C→B→A→D→H
の2経路あります。<解法(というほどのものではないんですが・・・)>
まともに最短距離を進むと、どうしても★の地点では90度向きがずれます。 そこで、真ん中の4つのマス目でユーターンさせて、90度向きを変えればいいんで すよね。
解答・その2
(ペンネ−ム:杖のおじさん)
答え、コースは次の通りです。アイコンのサイコロも転がってゴールに行きます。 56秒で到着します。
スタート→G(5の目)→F(3の目)→J(6の目)→I(2の目)→L(4の目)→ゴール(1の目)
解答・その3
(ペンネ−ム:T_Tatekawa)
Start -> G -> F -> J -> I -> L -> Goal
Start -> C -> F -> E -> I -> H -> Goal
の2通りでしょうか.いずれもジグザグに進みます.
解答・その4
(ペンネ−ム:ドンキー)
☆のところで1の目が上を向くには、 直前のLかHでは1の目はどこにないといけないか・・・ などと、ゴールから逆算してみましょう。
すると、「☆のところにあるサイコロの目が1のとき、問題文の初期位置(★とする)で1の目がでるようにする転がし方は?」
という問題を考えることになります。 この問題は、与えられたケースと同じような問題ですね。 しかも、与えられ問題とは★と☆の対称軸(面AとNの中心を結ぶ直線)について対称な動きをすればいいわけです。
ということは、題意を満たす転がり方をしたとき、この対称軸上の面A,E,J,Nのいずれかでは1の目は下を向いていることになります。
このような動き方を考えると、与えられた問題を直接考えるよりかなり楽です。 後はしらみつぶしに探してもたいしたことはありません。
(@)G→F→J→I→L→☆
(A)C→F→E→I→H→☆
と転がれば題意を満たします。 (ちなみに上の2つの経路は★と☆とを結ぶ直線に関して対称になってます)
解答・その5
(ペンネ−ム:JSミル)
今回の問題は規則性を見つけられませんでした.サイコロを作成して,実際に検証し てみたところ,以下のコースが考えられました.()内はサイコロが示す目です.
1.1CFGKJML1(135145631)なお,スタートとゴールに対して1,2,3はそれぞれ4,5,6の逆コースでした.
2.1GFJKNML1(153654631)
3.1GFJIL1(1536241)
4.1CBEDHIL1(136541531)
5.1CBADEIH1(136456351)
6.1CFEIH1(1356421)
解答・その6
(ペンネ−ム:のっこん)
1)Mを通るか(M=6になるか)
Mに至る4通りのうちCF・GFはF≠1なので×
KJ・KNも× よってMを通らない
2)Dを通るか(D=6になるか)
Dに至る4通りのうちGF・CFはF≠1なので×
BE・BAも× よってDを通らない
3)MもDも通らないからIを通る
4)Iに至る6通りのうち
B・Kを通るのはI=1となるから×
5)よって候補は次の4つ
@CFEI ACFJI BGFEI CGFJI
6)@はその後Hを通れば○ A・・・×
B・・・× Cはその後Lを通れば○
7)答えはこの2つ
解答・その7
(ペンネ−ム:巷の夢)
例えば下や横のみにころがし移動をしても升目が4個しかないため1に戻ることはできない。そこで考えられるのは下→横、横→下と常に回転方向を変化させることである。しかも、対角線の端から端までの移動であるから必ず残り2個の対角線上の升目F,Iを通ることが条件となる。 以上の考え方からFまでは2通り、FからIにも2通り、即ち4通りの行き方を考えれば良い。 勿論Iからゴールまでも2通りある。
この考え方に基づきやってみると、必ず、1回ずつ方向を変えないと駄目であることが分かり、 求めるものは、G→F→J→I→L、C→F→E→I→Hの2通りである。
解答・その8
(ペンネ−ム:夜ふかしのつらいおじさん)
スタートの位置をX、ゴールの位置をYとします。
下の図で「1」の目が上を向いている状態を「◎」、下を向いている状態を「×」で表します。
さいころが「X」から「Y」に行くためには、下(↓)に3手、左(←)に3手行く必要があります。
最低で合計6手かかります。
途中で上(↑)に行くとその分下(↓)にもどらなければなりません。
途中で右(→)に行くとその分左(←)にもどらなければなりません。
つまり手数が増えるときは、2手を単位とします。
スタート地点以外のマス目は15個なので、6、8、10、12、14手のどれかになります。
スタート地点から単純に一方向だけに進んで再び「1」の目が出るには4手必要です。
しかし一方向には進める余裕が3手分しかありません。
途中で向きを変える必要があります。
さいころが「1」と「6」を結ぶ軸の周りに回転するときは必要な4手の内の1手になりません。
「1」と「6」を結ぶ軸が平面に対して垂直なとき転がる向きを直角に変えると必要な4手の内の1手となります。
基本的な手は次のようです。
これらの手を組み合わせると例えば次のような例を得ることができます。
この12個とスタートXとゴールYを結ぶ線に対称な次の移動も適します。
1 XCFEIHY 2 XCFEBADHY 3 XCBEDHILY 4 XCBEDHIJKNMLY 5 XCBADEIHY 6 XCBADEIJFGKNMLY 7 XCBADEFGKJMLY 8 XCBADEFGKNMLIHY 9 XCBADHIEFJKNMLY 10 XCFGKJMLY 11 XCFGKNMLIHY 12 XCFGKNMLIEBADHY
これ以外の方法があるかどうかはもう少し時間をかけて考えなければなりません。
解答・その9
(ペンネ−ム:浜田 明巳)
いつものようにエクセルのマクロで解いた.答は以下の24通りである.この手の問題としては答が多すぎないだろうか.それとも私の答が間違っているのだろうか.
CBADHIEFJKNML★
CBADEIH★
CBADEIJFGKNML★
CBADEFGKJML★
CBADEFGKNMLIH★
CBEDHIL★
CBEDHIJKNML★
CFEBADH★
CFEIH★
CFGKJML★
CFGKNMLIEBADH★
CFGKNMLIH★
GFCBADHIL★
GFCBADHIJKNML★
GFCBEDH★
GFJIL★
GFJKNML★
GKJMLIEBADH★
GKJMLIH★
GKNMJFCBADHIL★
GKNMJFCBEDH★
GKNMJIEFCBADH★
GKNMJIL★
GKNMLIJFEBADH★
ちなみに最小移動回数は6回であり,CFEIH★とGFJIL★の2通りである.
(コピー&貼り付けする際は,全角の空白を半角にしなくてはなりません)
'A B C s -> (1,1) (2,1) (3,1) (4,1) -> 1 2 3 4
'D E F G (1,2) (2,2) (3,2) (4,2) 5 6 7 8
'H I J K (1,3) (2,3) (3,3) (4,3) 9 10 11 12
'g L M N (1,4) (2,4) (3,4) (4,4) 13 14 15 16
'
' 1
' ↑
'2← →4
' ↓
' 3
'
Option Explicit Sub Macro1() Sheets("Sheet1").Select Cells(1, 1).Value = 0 Range("A1").Select Dim a(15) As Integer Call saiki(1, a()) End Sub Sub saiki(ByVal n As Integer, ByRef a() As Integer) Dim b(16) As Integer '1:通過, 0:通過していない Dim c(6) As Integer 'サイコロの目 Dim x As Integer '盤の座標 Dim y As Integer Dim kotae As String Dim j As Integer a(n) = 1 '1:上, 2:左, 3:下, 4:右 While a(n) <= 4 x = 4 'スタート地点 y = 1 For j = 1 To 16 b(j) = 0 Next j b(f(4, 1)) = 1 Call check(0, c()) '最初のサイコロ kotae = "" For j = 1 To n Select Case a(j) Case 1 '上 y = y - 1 Case 2 '左 x = x - 1 Case 3 '下 y = y + 1 Case Else '右 x = x + 1 End Select If 1 <= x And x <= 4 And 1 <= y And y <= 4 Then '枠からはみ出ないように b(f(x, y)) = b(f(x, y)) + 1 '通過 Call check(a(j), c()) 'サイコロの目 kotae = kotae + ban(f(x, y)) End If Next j If 1 <= x And x <= 4 And 1 <= y And y <= 4 Then '枠からはみ出ないように If b(f(x, y)) = 1 Then '移動最後の盤が一度通過した盤でないように If x = 1 And y = 4 Then 'ゴールした時 If c(1) = 1 Then '1の目が上に Cells(1, 1).Value = Cells(1, 1).Value + 1 Cells(Cells(1, 1).Value, 2).Value = kotae End If ElseIf n < 15 Then Call saiki(n + 1, a()) End If End If End If a(n) = a(n) + 1 Wend End Sub Sub check(ByVal n As Integer, ByRef c() As Integer) ' c(2) 'c(3) c(1) c(5) c(6) ' c(4) Dim d(6) As Integer Dim j As Integer If n = 0 Then c(1) = 1 c(2) = 5 c(3) = 4 c(4) = 2 c(5) = 3 c(6) = 6 Else For j = 1 To 6 d(j) = c(j) Next j Select Case n Case 1 '上 ' c(2) c(1) 'c(3) c(1) c(5) c(6) -> c(3) c(4) c(5) c(2) ' c(4) c(6) d(1) = c(4) d(2) = c(1) d(4) = c(6) d(6) = c(2) Case 2 '左 ' c(2) c(2) 'c(3) c(1) c(5) c(6) -> c(1) c(5) c(6) c(3) ' c(4) c(4) d(1) = c(5) d(3) = c(1) d(5) = c(6) d(6) = c(3) Case 3 '下 ' c(2) c(6) 'c(3) c(1) c(5) c(6) -> c(3) c(2) c(5) c(4) ' c(4) c(1) d(1) = c(2) d(2) = c(6) d(4) = c(1) d(6) = c(4) Case Else '右 ' c(2) c(2) 'c(3) c(1) c(5) c(6) -> c(6) c(3) c(1) c(5) ' c(4) c(4) d(1) = c(3) d(3) = c(6) d(5) = c(1) d(6) = c(5) End Select For j = 1 To 6 c(j) = d(j) Next j End If End Sub Private Function f(ByVal x As Integer, ByVal y As Integer) As Integer f = x + (y - 1) * 4 '盤の座標から盤の番号へ変換 End Function Private Function ban(ByVal n As Integer) As String 'A B C s -> 1 2 3 4 'D E F G 5 6 7 8 'H I J K 9 10 11 12 'g L M N 13 14 15 16 Select Case n Case 1 ban = "A" Case 2 ban = "B" Case 3 ban = "C" Case 4 ban = "start" Case 5 ban = "D" Case 6 ban = "E" Case 7 ban = "F" Case 8 ban = "G" Case 9 ban = "H" Case 10 ban = "I" Case 11 ban = "J" Case 12 ban = "K" Case 13 ban = "★" Case 14 ban = "L" Case 15 ban = "M" Case Else ban = "N" End Select End Function
解答・その10
(ペンネ−ム:Toru)
1の向きを、スタート地点でのサイコロの目の数字で表わすことにする。 対称性から初手はCとする、この時1はスタート地点での4の向きにいくのでこれをC 4とあらわす。初手から3手目までは次の5通りでこれにより場合分けする。
1)C4B6A3 2)C4B6E5 3)C4F4E6 4)C4F4J4 5)C4F4G1
1) C4B6A3の次はD3
1)-? D3の次H3とするとつづいて、
I6L5★5,I6J4M4L6★3,I6J4K1N2M2L2★2,I6J4F4G1K2N6M3L1★4 ,I6E2F2J6M5L5★5,I6E2F2J6K4N4M6L3★1,I6E2F2G2K6N5M5L5★5 ,I6E2F2G2K6J3M3L1★4
1)-? D3の次E6I5とすると続いて
H5★1, L6★3,J5M1L4★6,J5K5N1M4L6★3,J5F6G4K4N4M6L3★1
1)-?E6F4J4とすると続いて
I6L2★2,I6H3★3, M4L6★3, M4L6I2H2★6,K1N2M2L2★2,K1N2M2L2I1H4★4
1)-?E6F4G1K2とすると続いて
J2I2H2★6,J2I2L6★3,J2M6L3★1,J2M6L3I3H1★2
,N6M3L1★4,N6M3L1I5H5★1,N6M3J3I1L2★2,N6M3J3I1H4★4
2) C4B6E5に続いて
2)-? D5H1の時続いて
★2,I3L3★1,I3J6M5L5★5,I3J6K4N4M6L3★1,I3J6F2G2K6N5M5L5★5
2)-? I1の時
H4★4,L2★2,J3M3L1★4,J3K6N5M5L5★5,J3F3G6K5N1M4L6★3
2)-?F5J1の時
I4H6★5,I4L4★6,M2L2★2,M2L2I1H4★4,K3N3M1L4★6
2)-?F5G5K1の時
J4I6H3★3,J4I6L5★5,J4M4L6★3,J4M4L6I2H2★6,N2M2L2★2,
N2M2L2I1H4★4,N2M2J1I4L4★6,N2M2J1I4H6★5
3) C4F4E6に続いて
3)-? D3H3の時、
★3,I6L5★5,I6J4M4L6★3,I6J4K1N2M2L2★2
3)-? B2A2D6H5の時、
★1,I5L1★4,I5J5M1L4★6,I5J5K5N1M4L6★3
3)-? I5の時、
H5★1,L1★4,J5M1L4★6,J5K5N1M4L6★3
4) C4F4J4に続いて
4)-? I6の時,
E2D2H6★5,E2B1A4D4H4★4,H3★3,L5★5
4)-? M4L6の時
★3,I2H2★6,I2E1D4H4★4,I2E1B5A5D1H2★6
4)-? K1N2M2L2の時,
★2,I1H4★4,I1E5D5H1★2,I1E5B6A3D3H3★3
5) C4F4G1K2につづいて
5)-?J2M6L3の時、
★1,I3H1★2,I3E3D1H2★6,I3E3B3A1D2H6★5
5)-? J2I2の時,
L6★3,H2★6,E1D4H4★4,E1B5A5D1H2★6
5)-? N6M3J3I1の時、
L2★2,H4★4,E5D5H1★2,E5B6A3D3H3★3
5)-? N6M3L1の時、
★4,I5H5★1,I5E6D3H3★3,I5E6B2A2D6H5★1
よって★で1となるものと、Gからスタートするこれらと対称のものをふくめて
の24通り
CBADHIEFJKNML★ GKNMLIJFEBADH★ CBADEIH★ GKNMJIL★ CBADEIJFGKNML★ GKNMJIEFCBADH★ CBADEFGKJML★ GKNMJFCBEDH★ CBADEFGKNMLIH★ GKNMJFCBADHIL★ CBEDHIL★ GKJMLIH★ CBEDHIJKNML★ GKJMLIEBADH★ CFEBADH★ GFJKNML★ CFEIH★ GFJIL★ CFGKJML★ GFCBEDH★ CFGKNMLIH★ GFCBADHIL★ CFGKNMLIEBADH★ GFCBADHIJKNML★
解答・その11
(ペンネ−ム:三角定規)
実際にサイコロを転がして,以下の8パターンを見つけました。
(1)CFEIH★(6回) (2)GFJIL★(6回) (3)CFEBADH★(8回) (4)GFJKNML★(8回) (5)GFCBEDH★(8回) (6)CFGKJML★(8回) (7)CBADEFGKJML★(12回) (8)GKNMJFCBEDH★(12回)
初めは最短経路だけでいいのだろうと思い,18通り全部を調べて (1)(2) で「できた」と思ったのですが,問題にはそのような限定はないのですね,もう少し捜してみました。
まだあると思うのですが…,このようなものを漏れなく数え上げるにはどうしたらいいのでしょう。
正解者
teki 浜田 明巳 のっこん 杖のおじさん 巷の夢 T_Tatekawa ドンキー Toru JSミル 夜ふかしのつらいおじさん 三角定規
条件に合うものを1つ探していただければいいかなと思っています。 対称性がありますから、1つ見つけると、もう1つも自動的に見つかりますね。 夜ふかしのつらいおじさん、 浜田明巳さん、 Toruさんについては、 すべての解を探していただきました。 きちんと場合分けをして、過不足なく数え上げるのは、大変なことです。 頭が下がります。
同じところを2度通ってはいけませんので、そう多くは存在しないかなと思いましたが、 24通りもあると知って、私自身も驚きました。