『今週の問題』第194回 解答


◆京都府の中学校2年生 pirochies さんからの解答

【問題1】

 1⇔ 7, 7⇔20,20⇔16,16⇔11,11⇔ 2,
 2⇔24, 3⇔10,10⇔23,23⇔14,14⇔18,
18⇔ 5, 4⇔19,19⇔ 9, 9⇔22, 6⇔12,
12⇔15,15⇔13,13⇔25,21⇔17,
の合計19回の動きで出来る。

【問題2】

理由 「1番が入るところに7番がある、7番が入るところに20番がある、20番が入るところに16番がある」、、、を繰り返すと、「22番が入るところに1番がある」 と最初に戻ります。
これをループと考えました。

最初の状態で、ループは、

  1. 1-7-20-16-11-2-24 -1
  2. 3-10-23-14-18-5 -3
  3. 4-19-9-22 -4
  4. 6-12-15-13-25 -6
  5. 17-21 -17
  6. 8 -8
の6つがあります。

1番のループ(1,7,20,16,11,2,24)は、
1⇔ 7, 7⇔20,20⇔16,16⇔11,11⇔ 2, 2⇔24,
とやれば、1番のループに関係する数字がすべて正しい場所に入ります。
こうすると、7個のループに関係する数字が6回の操作で正しくなります。

ループの数字の位置関係を正しくするには、「ループに関係する数字の数−1」回操作すれば、正しくなることがわかります。

 そう考えると、2番のループは5回、3番のループは3回、4番のループは4回、5番のループは1回(6番のループは0回)の操作で位置関係がすべて正しくなります。

 計6つのループごとの操作をする回数の合計である
6+5+3+4+1=19回が、この問題の答えになります。


◆千葉県 菜花子 さんからの解答

【問題1】

 1⇔ 7, 2⇔24, 3⇔10, 4⇔19, 5⇔10,
 6⇔12, 7⇔20, 9⇔22,10⇔23,11⇔24,
12⇔15,13⇔25,14⇔18,15⇔25,16⇔24,
17⇔21,18⇔23,19⇔22,20⇔24,
【問題2】

 

1〜25の数字のカードは、上記5つのグループに分けられる。

Aグループ:〔8〕は入れ替えは不要・・・0回
Bグループ:2枚のカードの入れ替え・・・1回
Cグループ:4枚のカードの入れ替え・・・3回
Dグループ:5枚のカードの入れ替え・・・4回
Eグループ:6枚のカードの入れ替え・・・5回
Fグループ:7枚のカードの入れ替え・・・6回

したがって、19回が最少回数である。

(青線の数が、2枚のカードを入れ替えた回数を示す。)

 


◆静岡県 medaka さんからの解答

【問題1】

最小回数は、以下の19回

 1⇔ 7, 2⇔24, 3⇔10, 4⇔19, 5⇔10,
 6⇔12, 7⇔20, 9⇔22,10⇔23,11⇔24,
12⇔15,13⇔25,14⇔18,15⇔25,16⇔24,
17⇔21,18⇔23,19⇔22,20⇔24
【問題2】

(最小回数であることの説明)

a.問題の表記と用語の定義

問題の配置をパネル上の位置(上段)とその位置にある数字(下段)の組合せとして書き直すと以下のようになる。

位置 →  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
数字 →  7 24 10 19  3 12 20  8 22 23  2 15 25 18 13 11 21  5  9 16 17  4 14  1  6
これを、しりとりの手順(下段の数字−>上段の位置の数字)に従って列を並べ替える。

1  7 20 16 11  2 24 *  3 10 23 14 18  5 *  4 19  9 22 *  6 12 15 13 25 * 8 * 17 21
7 20 16 11  2 24  1 * 10 23 14 18  5  3 * 19  9 22  4 * 12 15 13 25  6 * 8 * 21 17
(*はしりとりの完結する位置をわかりやすくするために挿入)  

使用する用語を以下の様に定義する。

循環列   : 上記のしりとりが完結する列のセット

例えば 1 7 20 16 11 2 24 7 20 16 11 2 24 1

循環列の長さ:循環列を構成する列の数。上記の例の場合は、7になる。
単位循環列 :長さが1の循環列

問題の正規表現:問題を循環列に並べ替えた表記

問題の位数 :問題に含まれる循環列の数。
与えられた問題の場合は、6。
最終形では、すべて単位循環列となるので25(=列の数)となる。

b.交換操作と循環列との関係

パネル上の2つの数字を交換する操作を循環列に着目して見ると、
2つの循環列に跨る交換(例えば1と10の交換)と
1つの循環列の中に閉じた交換(例えば7と20の交換)
にわけることができる。

1と10の交換のように2つの循環列に跨る交換をする場合は、以下のようになり、

 1  7 20 16 11  2 24   3 10 23 14 18 5 *
 7 20 16 11  2 24 10   1 23 14 18  5 3 *
これを整理すると、1つの循環列になっていることがわかる。
1  7 20 16 11  2 24 10 23 14 18 5 3 *
7 20 16 11  2 24 10 23 14 18  5 3 1 *
すなわち、2つの循環列に跨る交換は、2つの循環列を1つの循環列に連結する作用があり、問題の位数は1つ減少する。

次に7と20の交換のように1つの循環列の中に閉じた交換の場合は、以下のようになり、

  1  7 20 16 11  2 24 *
 20  7 16 11  2 24  1 *
これを整理すると、2つの循環列に分割されていることがわかる。
7 *   1 20 16 11  2 24 *
7 *  20 16 11  2 24  1 *
20と11の交換の場合も、同様に、2つの循環列に分割される。
1  7 20 16 11  2 24 *   -->  1  7 11  2 24 *  20 26 *
7 11 16 20  2 24  1 *        7 11  2 24  1 *  26 20 * 
以上から、1つの循環列の中に閉じた交換は、1つの循環列を2つの循環列に分割する作用があり、問題の位数は1つ増加する。

c.最小回数となる手順の条件

以上の考察より、

(1)与えられた問題の位数(=6)< 最終形の位数(=25)であるから、『位数が増加する手順を常に選択する方法』が最小回数となる手順である

(2)1回の交換操作では、位数は1つしか増加しないので、
本問題の場合、25−6=19回の交換が最小回数となる

(1),(2)をまとめると、『常に1つの循環列の中に閉じた交換を続ける』ことが最小回数の19回となる手順である。
そして、その最も簡単な手順が、問題1の解答で示した『1から順番に所定の位置にない数字を交換により所定の位置に戻していく』という方法である。

【問題3】

最小回数となる手順の数は、
425,935,250,535,674,880,000 通り

(求め方)

a.準備

長さがN1,N2,...,Nmのm個の循環列で構成される問題を
最小回数で解く手順の数をR(N1,N2,...,Nm) とする。
R(N1,N2,...,Nm)は、以下の関係が成り立つ。

1) R(1) = 0

2) R(2) = 1

3)R(N)=N*{ R(1,N-1)+R(2,N-2)+ ... +R(s,N-s)*δ
2

ただし、
δ = 0   Nが奇数のとき
δ = 1   Nは偶数のとき

4) R(N1,N2,...,N[k-1],1,N[k+1],...,Nm)=R(N1,N2,...,N[k-1],N[k+1],...,Nm)
(長さ1の循環列は、無操作なので除外してよい)

5) Nk >1 のとき (k=1,2,...,m)
R(N1,N2,...,Nm)= (N1 + N2 + ... + Nm - m)!
(N1-1)!*(N2-1)!* ... *(Nm-1)!
*R(1)*R(2)* ... *R(Nm)

1),2),4)は自明。
3),5)については、補足1,2で説明する。

b.最小回数で解く手順の数

与えられた問題は、R(1,2,4,5,6,7)に該当する。
まず、R(3)〜R(7)を1)〜5)を使って、順次求めていく。

R(3) = 3*{R(1,2)} = 3*R(2) = 3

次に、R(4)を求めるために必要なR(2,2)を求めると

 R(2,2)
(2+2−2)!
(2−1)!*(2−1)!
*R(2)*R(2)
2!
1!*1!
*1*1
= 2


 R(4)
=4*{R(1,3)+ R(2,2)
=4*{R(3)+ R(2,2)
=4*(3+
)
= 16

同様にして、R(5)=125、R(6)=1296、R(7)=16807を得る。

最後に、
 R(1,2,4,5,6,7)
=R(2,4,5,6,7)
(2+4+5+6+7−5)!
(2-1)!*(4-1)!(5-1)!*(6-1)!*(7-1)!
*R(2)*R(4)*R(5)*R(6)*R(7)
19!
3!*4!*5!*6!
*16*125*1296*16807
=425,935,250,535,674,880,000

この膨大な数がもとめる答えである。

補足1 3)の説明

長さnの循環列の構成要素を(A1,A2,,,,An)とし、
これを長さsと(n−s)の2つの循環列に分ける場合を考える。
(ただし、s≦n-s)

s<n−sの場合、長さsの循環列の選び方は、以下のn通り。

(A1,A2, ... ,As)  (A2,A3,...,A[s+1])  ...  (An,A1,...,A[s-1])

また、長さsと(n−s)の2つの循環列の問題を解く手順の数は
R(s,n−s)通りであるから
全体では、n*R(s,n−s)通りとなる。

s=n−sの場合(nは偶数,s=
)、
長さsの循環列の選び方は、以下の
通り。

注:(A1,A2, ... ,As) と(A[n/2+1],...,An) は同じ分割となっているため、半分になる

(A1,A2, ... ,As) (A2,A3,...,A[s+1]) ... (A[n/2],...,A[n-1])

また、長さ
の2つの循環列の問題を解く手順の数は
R(

)通りであるから
全体では、
*R(

)通りとなる。

sは、1〜
の範囲で任意の整数値をとることができるので、

 R(n)
=n*R(1,n−1)+n*R(2,n−2)+...+
*R(

)*δ
=n*{ R(1,n−1)+R(2,n−2)+...+R(

)*δ/2 }

但し、
δ=0  nが奇数のとき
δ=1  nが偶数のとき

補足2

5)の説明

2つの循環列a、bの長さをn、mとし、a、bを単独で解くて手順をそれぞれ

A1,A2,...,A[n-1]  B1,B2,...,B[m-1]とする。

この手順の中からAi,Bjのいずれかを順番に取り出して並べると、a,bを合わせて解く手順となる。

例えば、A1,A2,...,A[n-1],B1,B2,...,B[m-1]やA1,B1,A2,B2,...A[-1]B[m-1]など
Ai,Bjの並べ方は、a、bの中からaをn−1個、bをm−1個取り出す順列の数となるので

(n+m−2)!
(n−1)!*(m−1)!
通りとなる。

また、a,bを単独で解く手順の数は、それぞれR(n),R(m)通りであるから、全体では、
R(n,m)= (n+m−2)!
(n−1)!*(m−1)!
*R(n)*R(m)
となる。

一般の場合、m個の循環列の長さをN1,N2,...,Nmとすると

R(N1,N2,...,Nm)= (N1 + N2 + ... + Nm - m)!
(N1-1)!*(N2-1)!* ... *(Nm-1)!
*R(1)*R(2)* ... *R(Nm)
となる。

補足3

R(n)の一般式の予測

R(3)〜R(7)の値は、31,42,64,75となっているので、一般式として

R(n) = nn−2 が予測される。
しかし、証明を試みたが力及ばず、断念した。
回答者の中にこの証明があることを楽しみにしています。


◆東京都 明 さんからの解答

【問題1】

 1⇔ 7, 2⇔24, 3⇔10, 4⇔19, 5⇔10,
 6⇔12, 7⇔20, 9⇔22,10⇔23,11⇔24,
12⇔15,13⇔25,14⇔18,15⇔25,16⇔24,
17⇔21,18⇔23,19⇔22,20⇔24,
【問題2】

マスの任意の目から始めて、その目にあるカードの数字を記録し、次にその数字の入るべき目に移り、そのカードの数字を記録します。
以下、同じことを繰り返すと、必ず最初に始めた目に戻り、結果として、数字の数珠つながりができます。

【問題】の場合は、下記のような6個の数珠ができます。

始めからあるべき位置にあるカード(この場合8)も1個の数珠として扱うこととします。

7→20→16→11→2→24→1
↑           ↓
 ←―――――――――
10→23→14→18→5→3
↑         ↓
 ←――――――――
19→9→22→4
↑     ↓
 ←――――
12→15→13→25→6
↑        ↓
 ←――――――
 →8→
↑   ↓
 ←―
21→17
↑   ↓
 ←―
2枚のカードを交換したとき、この数珠がどのように変化するかを調べます。

(1)1個の数珠の中でカードを交換する場合。

例として、A,B,C,D,Eのカードの数珠を考えます。

A→B→C→D→E
↑        ↓
 ←――――――
BとDを入れ替えると、下記のように2つの数珠に分かれます。
A→D→E
↑    ↓
 ←――
C→B
↑  ↓
 ←
この状況をR(5)→R(3)+R(2)と表すことにします。

数珠の中で隣あうカードを交換するとR(5)→R(4)+R(1)となることが確かめられます。

R(1)は単一カードの数珠で、カードがあるべき位置に配置されていることを示します。

順に隣あうカードを交換して行くと、

R(5)→R(4)+R(1)→R(3)+2・R(1)→R(2)+3・R(1)→5・R(1)
(ここで2・R(1)はR(1)+R(1)を示す。以下同様)

よって、5枚のカードの数珠は最大でも4回でカードを正しい位置へ戻せます。

ここで、R(n)に数値n-1を対応させ、
これをNR(n)=n-1と表記することにします。

以上のように決めると、同一の数珠の中の任意の2枚カードを交換した場合、
R(n)→R(j)+R(k) (j+k=n)となるとき、
NR(n)=NR(j)+NR(k)+1 となります。
(n−1=(j-1)+(k-1)+1より明らか) 

したがって、同一の数珠の中の2枚のカードの交換をP回続けたとき、
R(n)→R(j1)+R(j2)+・・・・+R(jp)とすると
NR(n)=NR(j1)+NR(j2)+・・・・+NR(jp)+Pとなります。

同一数珠内での交換をくりかえすと、いずれすべてのjq=1となり、
よって、すべてのNR(jq)=0となります。

したがって、このときの交換回数Pとの間でNR(n)=Pが成り立ちます。

以上により、同一の数珠内でのカードの交換を続ければ、交換をどのようにしても、n−1回ですべてのカードが正しい位置に配置されることが判りました。

(2)異なった数珠の間でカードを交換する場合。

例として下記の長さが2と3の2個の数珠のBとDを交換すると、長さが5の数珠ができます。

A→B→C
↑    ↓
 ←――
D→E
↑  ↓
 ←
A→D→E→B→C
↑        ↓
 ←――――――
結果NR(5)=NR(3)+NR(2)+1となり、R(5)からカードの交換を進め ても、元のR(3)+R(2)の数珠から同一数珠内で交換を進めた場合より 手数が多くなってしまいます。

これを一般化すりことにより、異なった数珠間でのカード交換は手数が多くなることを示せます。

(1)、(2)により、最短の手数でカードをあるべき位置に配置するための方法は、同一数珠内でカードを交換することであり、カードの数をC、数珠の数をNとすると、最短手数はC−Nとなります。

カードを最短手数で正しい位置に配置するための判り易い方法のひとつは、任意の目にあるカードが、あるべき数字と異なっているとき、その目のカードとあるべき数字のカードを交換することです。

この方法は同一数珠内でのカードの交換を保証しますので、自動的に最短手数でカードを正しい位置に配置できます。

【問題3】

R(j1),R(j2)・・・,R(jq) (n=j1+j2+・・・+jq)の数珠の最小回数の方法の数を
それぞれWR(j1),WR(j2)・・,WR(jq)とすると、すべての場合の数は

(n-q)!
(j1-1)!・(j2-1)!・・・(jq-1)!
・WR(j1)・WR(j2)・・・WR(jq)

により計算できます。

特に数珠が2個の場合は、
n-2Cj-1・WR(j)・WR(n-j)で表すことができます。

WR(n)を求めるために漸化式を利用します。

R(n)の数珠の中の1つのカードに着目すると、このカードと交換できるカードはn-1枚で交換した時の数珠は次のとおりとなります。

R(n-1)+R(1),R(n-2)+R(2),・・,R(2)+R(n-2),R(1)+R(n-1)

これらの最小回数の方法の合計Kは以下のとおりです。

K=n-2C0・WR(n-1)・WR(1)+n-2C1・WR(n-2)・WR(2)+・・・+n-2Cn-3・WR(2)・WR(n-2)+n-2Cn-2・WR(1)・WR(n-1)
着目するカードはn枚あり、すべてのカードにわたってKを加算したとき、同じカードの組み合わせが2回でることより、
WR(n)=n・K
2
 となります。

WR(2)=1ですが、Kの式を成立させるため、WR(1)=1とします。

以上により、WR(3)以降が順に求められます。

WR(25)まで数値計算した結果は以下のとおりです。
(10進BASICの1000桁モードを使用)

WR( 1)=  1 
WR( 2)=  1 
WR( 3)=  3 
WR( 4)=  16 
WR( 5)=  125 
WR( 6)=  1296 
WR( 7)=  16807 
WR( 8)=  262144 
WR( 9)=  4782969 
WR(10)=  100000000 
WR(11)=  2357947691 
WR(12)=  61917364224 
WR(13)=  1792160394037 
WR(14)=  56693912375296 
WR(15)=  1946195068359375 
WR(16)=  72057594037927936 
WR(17)=  2862423051509815793 
WR(18)=  121439531096594251776 
WR(19)=  5480386857784802185939 
WR(20)=  262144000000000000000000 
WR(21)=  13248496640331026125580781 
WR(22)=  705429498686404044207947776 
WR(23)=  39471584120695485887249589623 
WR(24)=  2315513501476187716057433112576 
WR(25)=  142108547152020037174224853515625 
【問題】ではn=25、j1=7,j2=6,j3=5,j4=4,j5=2,j6=1ですので、最小回数の場合の数は、以下のとおりとなります。
19!
6!・5!・4!・3!・1!・0!
・WR(7)・WR(6)・WR(5)・WR(4)・WR(2)・WR(1)
=425935250535674880000

参考にWRを求めるプログラムを添付します。


DECLARE EXTERNAL FUNCTION comb
OPTION ARITHMETIC DECIMAL_HIGH
LET N=25
DIM C(N)
LET C(1)=1
LET C(2)=1
PRINT "WR( 1)= ";C(1)
PRINT "WR( 2)= ";C(2)
FOR J=3 TO N
   LET SUM=0
   FOR K=1 TO J-1
      LET SUM=SUM+comb(J-2,K-1)*C(K)*C(J-K)
   NEXT K
   LET C(J)=J*SUM/2
   PRINT "WR(";
   PRINT USING"##":J;
   PRINT")= ";C(J)
NEXT J

END

EXTERNAL FUNCTION comb(N,K)
OPTION ARITHMETIC DECIMAL_HIGH
LET comb=1
IF K=0 OR K=N THEN EXIT FUNCTION
LET C=1
FOR I=1 TO N-K
   LET C=C*(K+I)/I
NEXT I
LET comb=C
END FUNCTION

◆愛知県 Y.M.Ojisan さんからの解答

【問題1】 19回

21⇔17, 1⇔ 7, 7⇔24, 7⇔ 2, 7⇔11,
 7⇔16, 7⇔20, 3⇔ 5, 3⇔18, 3⇔14,
 3⇔23, 3⇔10, 4⇔19,19⇔ 9, 9⇔22,
25⇔13,25⇔15,25⇔12,25⇔ 6,
【問題2】

巡回置換表現すると
(8)(21,17)(7,1,24,2,11,16,20)(10,23,14,18,5,3)(4,19,9,2)(6,12,15,13,25)
の6個に分解できる。

よって25−6回である。

∵巡回置換間の互換をしたら、グループの数が減るので得策ではない。

2要素なら1回、3要素なら2回は明らかである。

今、n要素ではn-1回必要とする。
巡回置換の一箇所を互換すると、結果は1要素が正しい位置で残りがn-1要素の巡回置換となるか、2個のn-1要素以下の巡回置換になる。
よって何れの場合も合計n-1回の互換が必要である。

【問題3】

425935250535674880000 とおり。

(8)と(21,17) は内部では1とおりである。
(21,17)互換の順序位置は19とおりである。

要素3個の巡回置換(a,b,c)の場合は内部では3通りであり、
その2個の互換の順序位置は白紙状態では 192 である。

f(n)を n個の要素の巡回置換をn-1個の互換の積での表現する場合の数とするとき
f(1)=1 f(2)=1 f(3)=3 であり、一般には下記である。

即ち、最初の互換で巡回置換は2個の巡回置換に分けられる。
分け方は1個とn−1個からn−1個と1個までのn−1種あり、それぞれ位置はnとおりある。
ただし全て2重に数えており、下記となる。

2*f(n)
n
= f(1)*f(n-1)+f(2)*f(n-2)*n-2C1+f(3)*f(n-3) *n-2C2+……+f(n-1)*f(1) *n-2Cn-2

よって

f(4)=2*(1*3+1*1+3*1)=16=42

f(5)=5/2*(1*16+1*3*3+3*1*3+16*1)=125=53

f(6)=3*(1*125+1*16*4+3*3*6+16*1*4+125*1)=1296=64

f(7)=7/2*(1*1296+1*125*5+3*16*10+16*3*10+125*1*5+1296*1)=16807=75

(一般に f(n)=nn-2 である。証明略)

問題の6種の巡回置換の要素の数は 1、2、4、5、6、7である。
よって答えは

 f(1)*19C1*f(2)*18C3*f(4)*15C4*f(5)*11C5*f(6)*6C6*f(7)
=19!*16*125*1296*16807/(3!*4!*5!*6!)
19!*16*125*1296*16807
3!*4!*5!*6!
=425935250535674880000

である。


 ◆ 問題へもどる

 ◆ 今週の問題

数学の部屋へもどる