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)
2.1GFJKNML1(153654631)
3.1GFJIL1(1536241)
4.1CBEDHIL1(136541531)
5.1CBADEIH1(136456351)
6.1CFEIH1(1356421)
なお,スタートとゴールに対して1,2,3はそれぞれ4,5,6の逆コースでした.



解答・その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を結ぶ線に対称な次の移動も適します。

1XCFEIHY
2XCFEBADHY
3XCBEDHILY
4XCBEDHIJKNMLY
5XCBADEIHY
6XCBADEIJFGKNMLY
7XCBADEFGKJMLY
8XCBADEFGKNMLIHY
9XCBADHIEFJKNMLY
10XCFGKJMLY
11XCFGKNMLIHY
12XCFGKNMLIEBADHY

これ以外の方法があるかどうかはもう少し時間をかけて考えなければなりません。





解答・その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からスタートするこれらと対称のものをふくめて

CBADHIEFJKNML★GKNMLIJFEBADH★ 
CBADEIH★GKNMJIL★
CBADEIJFGKNML★GKNMJIEFCBADH★
CBADEFGKJML★GKNMJFCBEDH★
CBADEFGKNMLIH★GKNMJFCBADHIL★
CBEDHIL★GKJMLIH★
CBEDHIJKNML★GKJMLIEBADH★
CFEBADH★GFJKNML★
CFEIH★GFJIL★
CFGKJML★GFCBEDH★
CFGKNMLIH★GFCBADHIL★
CFGKNMLIEBADH★GFCBADHIJKNML★
の24通り



解答・その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通りもあると知って、私自身も驚きました。





E-mail top