「今月の問題」 第24回 回答例


 次の例題を注意深く見て下さい。
<例題>
  39×186=7254
  12×483=5796
 なんと、9個の数字は全て異なっていることが分かります。
同じように、9個の数字全てを使って積の形になるのは、上の例題を含めて9種類あることを知りました。

 そのうち、
 4×
12341234 の形になるのは2種類あるようです。

 ○1234
にあてはまる数字はいくらといくらになるでしょうか。

 

 


解答は1738と1963です。

< キヨタカ  さんより>
地道に樹形図を書いてみました。といっても数が多すぎるので少し数を限定してしました。
まず4は削除。次に、○@には、1ないし2が入る。(3以上だと解が5桁に
なるので)、次に○Cには1,4、5、6、は入らない(□Cの解が
4、又は0が入るので)そして、ゴリゴリ計算していくと・・・・
4×1963=7852
4×1738=6952になり
よって答えは1963と1738になる。


<teki さんより>
2つ  ○1には1か2しか当てはまりません。
  また、□4には、2、6、8、○4には、2、3、7、8、9の
 いずれかが当てはまります。
  結局、5の位置をどこにするかが焦点となります。
  調べると、○1が2の場合には、該当がないことが
 わかります。
  あとは、○1=1として、○2≧5、○4=(2、3、7、8、9)
 □4=(2、6、8)を条件として、候補を絞り込んで行きました。


<BossF さんより>
まずあきらかに ○1=1,2
○1=2 の時
 視察により(○4,□4)=(7,8),(9,6)
  あきらかに、□1=8,9であることに注意すれば
 4x2○○7=9□□8、4x2○○9=8□□6
         であるが、これは不適
○1=1 の時
 (○4,□4)=(2,8),(3,2),(7,8),(8,2),(9,6)
       (○4,□4)=(2,8) の時(○3,□3)=(9,6)
    であるが、これは不適
   (○4,□4)=(3,2)  の時(○3,□3)=(6,5),(7,9),(9,7)
    であり、(6,5) の時適し、
       4x1963=7852 をえる
   (○4,□4)=(7,8) の時(○3,□3)=(5,2)
         であるが、これは不適
       (○4,□4)=(8,2) の時(○3,□3)=(3,5),(5,3),(6,7)
          であり、(3,5) の時適し、
       4x1738=6952 をえる
   (○4,□4)=(9,6) の時(○3,□3)=(3,5),(5,3),(6,7)
         であるが、これは不適


<ミミズクはくず耳 さんより>
ちょっとずるですが、覆面算のソフトに助けてもらいました。
0 を認めると、
4x1809 = 7236
4x1908 = 7632
4x2039 = 8156
4x2079 = 8316
もありますね。


<巷の夢 さんより>
条件から4桁目と1桁目を絞り込み、後は数値を代入しました。掛けられる数を全て加えると19となることからも確かめました。



<浜田 さんより>

 今回はエクセルのマクロで解きました(私のプログラムの種類も種がつきました).
 答は,1963,1738の2つです.
 ついでに,他の式も求めるプログラムにしてあります.2つ以上の数の積とすると,答は9種類に限らず,たくさんあるようです.

4*1963=7852
4*1738=6952
12*483=5796
42*138=5796
27*198=5346
28*157=4396
18*297=5346
48*159=7632
39*186=7254
1*8*932=7456
1*8*742=5936
1*8*942=7536
1*8*592=4736
1*8*953=7624
1*8*954=7632
1*8*674=5392
1*8*794=6352
1*8*537=4296
1*8*459=3672
1*8*469=3752
1*8*579=4632
1*8*679=5432
1*9*836=7524
1*9*647=5823
1*9*638=5742
2*7*681=9534
2*7*594=8316
3*4*581=6972
3*4*716=8592
4*6*158=3792
6*8*154=7392
6*9*138=7452
1*53*92=4876
1*62*87=5394
2*34*87=5916
2*39*61=4758
2*41*73=5986
2*59*73=8614
3*28*71=5964
7*18*29=3654
7*19*26=3458
8*19*36=5472
8*19*37=5624
9*16*38=5472

Option Explicit
Sub Macro1()
    Dim A As Integer
    Dim B As Integer
    Dim C As Integer
    Dim D As Integer
    Dim E As Integer
    Dim F As Integer
    Dim G As Integer
    Dim H As Integer
    Dim I As Integer
    Dim kuriagari(3, 3) As Integer
    Dim kosuu As Integer
    Dim m1 As Integer
    Dim m2 As Integer
    Dim m3 As Integer
    Dim m4 As Integer
    Dim m5 As Integer
    Dim m6 As Integer
    Dim m7 As Integer
    Dim m8 As Integer
    Dim m9 As Integer
    kosuu = 0
'
'A*BCDE=FGHI
'
'   B C D E
'X)       A
'----------
'   F G H I
'
    For A = 1 To 9
      For E = 1 To 9
        If E <> A Then
          I = (A * E) Mod 10
          If A <> I And E <> I And I > 0 Then
            kuriagari(1, 1) = (A * E) \ 10
            For D = 1 To 9
              If A <> D And E <> D And I <> D Then
                H = (A * D + kuriagari(1, 1)) Mod 10
                If A <> H And E <> H And I <> H And D <> H And H > 0 Then
                  kuriagari(1, 2) = (A * D + kuriagari(1, 1)) \ 10
                  For C = 1 To 9
                    If A <> C And E <> C And I <> C And D <> C And H <> C Then
                      G = (A * C + kuriagari(1, 2)) Mod 10
                      If A <> G And E <> G And I <> G And D <> G And H <> G And C <> G And G > 0 Then
                        kuriagari(1, 3) = (A * C + kuriagari(1, 2)) \ 10
                        For B = 1 To 9
                          If A <> B And E <> B And I <> B And D <> B And H <> B And C <> B And G <> B Then
                            F = A * B + kuriagari(1, 3)
                            If A + B + C + D + E + F + G + H + I = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 Then
                              kosuu = kosuu + 1
                              Range("A" & kosuu).Select
                              Cells(kosuu, 1).Value = A
                              Cells(kosuu, 2).Value = "*"
                              Cells(kosuu, 3).Value = B * 1000 + C * 100 + D * 10 + E
                              Cells(kosuu, 4).Value = "="
                              Cells(kosuu, 5).Value = F * 1000 + G * 100 + H * 10 + I
                            End If
                          End If
                        Next B
                      End If
                    End If
                  Next C
                End If
              End If
            Next D
          End If
        End If
      Next E
    Next A
'
'AB*CDE=FGHI
'
'     C  D  E
'X)      A  B
'------------
'  m1 m2 m3 I
'  m4 m5 m6
'------------
'  F  G  H  I
'
    For B = 1 To 9
      For E = 1 To 9
        If B <> E Then
          I = (B * E) Mod 10
          If B <> I And E <> I And I > 0 Then
            kuriagari(1, 1) = (B * E) \ 10
            For D = 1 To 9
              If B <> D And E <> D And I <> D Then
                m3 = (B * D + kuriagari(1, 1)) Mod 10
                kuriagari(1, 2) = (B * D + kuriagari(1, 1)) \ 10
                For C = 1 To 9
                  If B <> C And E <> C And I <> C And D <> C Then
                    m2 = (B * C + kuriagari(1, 2)) Mod 10
                    m1 = (B * C + kuriagari(1, 2)) \ 10
                    For A = 1 To 9
                      If B <> A And E <> A And I <> A And D <> A And C <> A Then
                        m6 = (A * E) Mod 10
                        H = (m3 + m6) Mod 10
                        If B <> H And E <> H And I <> H And D <> H And C <> H And A <> H And H > 0 Then
                          kuriagari(2, 1) = (A * E) \ 10
                          kuriagari(3, 1) = (m3 + m6) \ 10
                          m5 = (A * D + kuriagari(2, 1)) Mod 10
                          G = (m2 + m5 + kuriagari(3, 1)) Mod 10
                          If B <> G And E <> G And I <> G And D <> G And C <> G And A <> G And H <> G And G > 0 Then
                            kuriagari(2, 2) = (A * D + kuriagari(2, 1)) \ 10
                            m4 = A * C + kuriagari(2, 2)
                            If m4 < 10 Then
                              kuriagari(3, 2) = (m2 + m5 + kuriagari(3, 1)) \ 10
                              F = m1 + m4 + kuriagari(3, 2)
                              If A + B + C + D + E + F + G + H + I = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 Then
                                kosuu = kosuu + 1
                                Range("A" & kosuu).Select
                                Cells(kosuu, 1).Value = A * 10 + B
                                Cells(kosuu, 2).Value = "*"
                                Cells(kosuu, 3).Value = C * 100 + D * 10 + E
                                Cells(kosuu, 4).Value = "="
                                Cells(kosuu, 5).Value = F * 1000 + G * 100 + H * 10 + I
                              End If
                            End If
                          End If
                        End If
                      End If
                    Next A
                  End If
                Next C
              End If
            Next D
          End If
        End If
      Next E
    Next B
'
'A*B*CDE=FGHI (A<B)
'
'A*B=m1 m2        C  D  E
'            X)      m1 m2
'            -------------
'              m3 m4 m5 I
'              m6 m7 m8
'            --------------
'              F  G  H  I
'
    For A = 1 To 9 - 1
      For B = A + 1 To 9
        m1 = (A * B) \ 10
        m2 = (A * B) Mod 10
        For E = 1 To 9
          If A <> E And B <> E Then
            I = (E * m2) Mod 10
            If A <> I And B <> I And E <> I And I > 0 Then
              kuriagari(1, 1) = (E * m2) \ 10
              m8 = (E * m1) Mod 10
              For D = 1 To 9
                If A <> D And B <> D And E <> D And I <> D Then
                  m5 = (D * m2 + kuriagari(1, 1)) Mod 10
                  H = (m5 + m8) Mod 10
                  If A <> H And B <> H And E <> H And I <> H And D <> H And H > 0 Then
                    kuriagari(1, 2) = (D * m2 + kuriagari(1, 1)) \ 10
                    kuriagari(2, 1) = (E * m1) \ 10
                    kuriagari(3, 1) = (m5 + m8) \ 10
                    For C = 1 To 9
                      If A <> C And B <> C And E <> C And I <> C And D <> C And H <> C Then
                        m4 = (C * m2 + kuriagari(1, 2)) Mod 10
                        m7 = (D * m1 + kuriagari(2, 1)) Mod 10
                        G = (m4 + m7 + kuriagari(3, 1)) Mod 10
                        If A <> G And B <> G And E <> G And I <> G And D <> G And H <> G And C <> G And G > 0 Then
                          kuriagari(2, 2) = (D * m1 + kuriagari(2, 1)) \ 10
                          m6 = C * m1 + kuriagari(2, 2)
                          If m6 < 10 Then
                            m3 = (C * m2 + kuriagari(1, 2)) \ 10
                            kuriagari(3, 2) = (m4 + m7 + kuriagari(3, 1)) \ 10
                            F = m3 + m6 + kuriagari(3, 2)
                            If A + B + C + D + E + F + G + H + I = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 Then
                              kosuu = kosuu + 1
                              Range("A" & kosuu).Select
                              Cells(kosuu, 1).Value = A
                              Cells(kosuu, 2).Value = "*"
                              Cells(kosuu, 3).Value = B
                              Cells(kosuu, 4).Value = "*"
                              Cells(kosuu, 5).Value = C * 100 + D * 10 + E
                              Cells(kosuu, 6).Value = "="
                              Cells(kosuu, 7).Value = F * 1000 + G * 100 + H * 10 + I
                            End If
                          End If
                        End If
                      End If
                    Next C
                  End If
                End If
              Next D
            End If
          End If
        Next E
      Next B
    Next A
'
'A*BC*DE=FGHI (B<D)
'
'A*BC=m1 m2 m3     m1 m2 m3
'                X)   D  E
'               -----------
'               m4 m5 m6 I
'               m7 m8 m9
'               -----------
'               F  G  H  I
'
    For A = 1 To 9
      For B = 1 To 9 - 1
        If A <> B Then
          For C = 1 To 9
            If A <> C And B <> C Then
              m2 = A * (B * 10 + C)
              m1 = Int(m2 / 100)
              m3 = m2 Mod 10
              m2 = Int(m2 / 10) - m1 * 10
              For E = 1 To 9
                If A <> E And B <> E And C <> E Then
                  I = (m3 * E) Mod 10
                  If A <> I And B <> I And C <> I And E <> I And I > 0 Then
                    kuriagari(1, 1) = (m3 * E) \ 10
                    m6 = (m2 * E + kuriagari(1, 1)) Mod 10
                    For D = B + 1 To 9
                      If A <> D And C <> D And E <> D And I <> D Then
                        m9 = (m3 * D) Mod 10
                        H = (m6 + m9) Mod 10
                        If A <> H And B <> H And C <> H And E <> H And I <> H And D <> H And H > 0 Then
                          kuriagari(1, 2) = (m2 * E + kuriagari(1, 1)) \ 10
                          kuriagari(2, 1) = (m3 * D) \ 10
                          kuriagari(3, 1) = (m6 + m9) \ 10
                          m5 = (m1 * E + kuriagari(1, 2)) Mod 10
                          m8 = (m2 * D + kuriagari(2, 1)) Mod 10
                          G = (m5 + m8 + kuriagari(3, 1)) Mod 10
                          If A <> G And B <> G And C <> G And E <> G And I <> G And D <> G And H <> G And G > 0 Then
                            m4 = (m1 * E + kuriagari(1, 2)) \ 10
                            If m4 < 10 Then
                              kuriagari(2, 2) = (m2 * D + kuriagari(2, 1)) \ 10
                              m7 = m1 * D + kuriagari(2, 2)
                              If m7 < 10 Then
                                kuriagari(3, 2) = (m5 + m8 + kuriagari(3, 1)) \ 10
                                F = m4 + m7 + kuriagari(3, 2)
                                If A + B + C + D + E + F + G + H + I = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 Then
                                  kosuu = kosuu + 1
                                  Range("A" & kosuu).Select
                                  Cells(kosuu, 1).Value = A
                                  Cells(kosuu, 2).Value = "*"
                                  Cells(kosuu, 3).Value = B * 10 + C
                                  Cells(kosuu, 4).Value = "*"
                                  Cells(kosuu, 5).Value = D * 10 + E
                                  Cells(kosuu, 6).Value = "="
                                  Cells(kosuu, 7).Value = F * 1000 + G * 100 + H * 10 + I
                                End If
                              End If
                            End If
                          End If
                        End If
                      End If
                    Next D
                  End If
                End If
              Next E
            End If
          Next C
        End If
      Next B
    Next A
End Sub



なお、解答の4ケタの数字の和が19になる疑問については、以下のメールで教えてもらいました。

<teki さんより>
1 かけられる数の各桁の合計は、最小で11、最大で
 30となる。
2 4を除く8つの数の号液は41となる。
3 41を2つのグループに分けた場合の分け方は20通り
 ある。
4 このうち、どちらのグループも3で割り切れる組合せは
 ない。
5 従って、どちらかのグループが3で割り切れる場合は矛盾
 が生じる。(各桁の合計が3で割り切れる場合、その数自体
 も3で割り切れるため)
6 上記条件から、可能性のあるのは、かけられる数字の各桁
 の合計が13,16,19,22,25、28の6つに絞られる。
7 さらに調べると、各桁の合計がかけられる数より4をかけた
 数の方が小さくなる場合は、可能性がないことがわかる。
8 従って、候補は13、16、19の3つに絞られる。
9 この内、13については、パターンが限定されており、該当が
 ないことがすぐにわかる。
10 残りの16、19について、調べると19しか該当がない。

{tekiさんより追伸していただきました。}
前回のメールで、かけられる数の各桁の合計が、13、16、
19、22、25、28の6種類に絞られることは申し上げました。
さらに、この6種類について、9の倍数に注目して検討すると、
かけられる数を9N+Mとすると、M=(1、4、7)の3種類に
分類できる。
これに4をかけた場合の9で割った余りは。
M=1 の時、4
M=4 の時、7
M=7 の時、1
となる。
これを各組合せに対応させると、矛盾が生じない組合せは、
(19、22)、(28、13)の2種類に絞られる。
この内、(28、13)については、1か2がかけられる数に含まれる
という条件から不適。(1か2がかけられる数に含まれ、各桁が異
なる数の場合、かけられる数の各桁の合計の最大は26(2、7、8、9)
となるため)
これから、かけられる数の各桁の合計は、19に絞られる。

 

<BossF さんより>
算チャレver2で「妖怪」だったALISさんのHP
http://www.geocities.co.jp/CollegeLife-Cafe/9443/
の虫食い算のところに、詳しく解説が載ってます