平成13年3月24日

[流れ星]

        第70回数学的な応募問題

          <解答募集期間:3月4日〜3月18日>

[マグネット]

太郎さんは、問題を説明するときに、教材としてときどきマグネットを使用します。

今、赤、白、青それぞれn個、計3n個のマグネットを準備しています。このマグネットを全部使って、1列に並べたいと思っています。ただし、隣り合うマグネットの色は異なるとし、左右は区別するものとします。

 ここで、問題です。

問題1:n=1のとき、このような並べ方は何通りあるか。

問題2:n=2のとき、このような並べ方は何通りあるか。

問題3:n=3のとき、このような並べ方は何通りあるか。

 太郎さんはn=3までしか、答を知りません。だから、一般に、nについての考え方を見いだしていません。どなたか教えてください

 

NO1<「Iga」さん>からの解答 3月16日11時11分受信、3月16日更新
『お久しぶりです、Igaです。うまい考え方が分からないので、(仮称)十進BASICでプログラムを組んで、力まかせに答えだけを求めてみました。とりあえず結果を送ります。
<エクセルなどのマクロの知識があれば、もっとスマートに求められたのかもしれませんが…> N=1 のとき 6通り
N=2 のとき 30通り
N=3 のとき 174通り
ここまでは、「6倍して6を引く」という風になっていたので、次もそうかなと思っていたら、
N=4 のとき 1092通り
N=5 のとき 7188通り
N=6 のとき 48852通り
という結果が出たので、よく分からなくなってしまいました。ちなみに、N=6のときの計算時間は15時間ほどでした。(PCの力を借りた、本当に力まかせです。)
せっかく結果が出たので、とりあえず送ります。もう少し考えてはみますが…わかるかどうか…。では、また。』
* <太郎さんのコメント:実はN=3までした、答えを出していません。樹形図を書いて、3つの色の対象性から6の倍数であることには気がついていました。このように未知の問題が解けると気持ちがいいものです。>

NO2<「浜田」さん>からの解答 3月17日8時13分受信、3月17日更新
【エクセルのマクロで解きました.遅れてすみません.
n=1-6
n=2-30
n=3-174
n=4-1092
n=5-7188
n=6-48852
n=7-339720
n=8-2403588

Option Explicit
Sub Macro1()
Dim magnet(30) As Integer
Dim n As Integer
For n = 1 To 8
Cells(n, 1).Value = 0
Call check(n, 1, magnet())
Next n
End Sub
Sub check(ByVal n As Integer, ByVal j As Integer, ByRef magnet() As Integer)
magnet(j) = 1
While magnet(j) <= 3
If dame(n, j, magnet()) = 0 Then
If j <3 * n Then>
Call check(n, j + 1, magnet())
Else
Cells(n, 1).Value = Cells(n, 1).Value + 1
End If
End If
magnet(j) = magnet(j) + 1
Wend
End Sub
Private Function dame(ByVal n As Integer, ByVal j As Integer, ByRef magnet() As Integer) As Integer
Dim wa As Integer
Dim i As Integer
If j = 1 Then
dame = 0
ElseIf magnet(j - 1) = magnet(j) Then
dame = 1
Else
i = 1
wa = 0
While wa
If magnet(i) = magnet(j) Then
wa = wa + 1
End If
i = i + 1
Wend
dame = -(wa n - 1)
End If
End Function  】 
* <太郎さんのコメント:昨日に続いて、第70回応募問題「マグネット」の解答が「浜田」さんから寄せられていました。本当にありがとうございます。感謝の気持ちで一杯です。こうなると、どうしても、規則性を発見したくなってきました。チャレンジしてください。3月17日記入>
NO3<水の流れ>3月24日記入
赤、白、青の3色は対称性があるので、左端に赤の場合を数えて3倍すれば良い。
さらに、左端に赤、白として6倍すれば良い。解法の便利さを考えて、赤を1,白を2,青を3とします。
問題1の解答:n=1のとき、123と数えて、1通り。よって、すべての並び方は6通り。

問題2の解答:n=2のとき、123123,123132,123231,123213,121323と数えて、5通り。よって、すべての並び方は、6倍して、5×6=30通り。

問題3の解答:n=3のとき、
121231323で、1通り
121232313で、1通り
121312323で,1通り
121313232で,1通り
121321323で,1通り
121323(123)は(123)の並び方より4通り
123<・・・・・・>は <・・・・・・>を問題2と同じとみることができる。
ただし、最初の・は3がこれなくて、1または、2しかないので、20通りしかない。

以上から、最初を12としているので、これの6倍をすれば良い。

したがって、すべての並び方は、29×6=174通り

ここで、太郎さんは、思考を断念しています。もう一度誰か、規則性を発見くだされば、幸いです。
NO4<「八木」さん>からの解答 3月26日1時05分受信、3月26日更新
時間については、3月28日の23時に同じく「八木」さんから頂きました。更新は29日
マグネットの問題の解答を再計算し計算時間を求めました。m(20)までは合計で5秒ぐらい、m(30)あたりから少し時間を食うようになりあとは1増すごとに時間が3割くらい増加しているようです。
* M(1)=6
  M(2)=30
M(3)=174
M(4)=1092
M(5)=7188
M(6)=48852
M(7)=339720
M(8)=2403588
M(9)=17236524
M(10)=124948668
M(11)=913820460
M(12)=6732898800
M(13)=49918950240
M(14)=372104853600
M(15)=2786716100592
M(16)=20955408717396
M(17)=158149624268220
M(18)=1197390368733804
M(19)=9091866006950892
M(20)=69214297980023256
M(21)=528150412279712856・・・・・・・・・・・ time=0:0:1
M(22)=4038744418776845400・・・・・・・・・・・time=0:0:2
M(23)=30944390624047065984・・・・・・・ ・・・time=0:0:3
M(24)=237516699913494859872・・・・・・・・・・time=0:0:4
M(25)=1826086013748254354208・・・・・・・・・ time=0:0:6
M(26)=14060749765349707607712・・・・・・・・・time=0:0:8
M(27)=108419462768852853411360・・・・・・・・ time=0:0:11
M(28)=837093723433477717410048・・・・・・・・ time=0:0:14
M(29)=6470979121569898636819584・・・・・・・・time=0:0:19
M(30)=50079488713677575202500736・・・・・・・ time=0:0:25
M(31)=387982401816883700210450784・・・・・・・time=0:0:32
M(32)=3008830071902513451691172340・・・・・・ time=0:0:41
M(33)=23355578609725312573413915996・・・・・・time=0:0:53
M(34)=181454222489643445523121055308・・・・・・・・・・ time=0:1:8
M(35)=1410929075530217028966809771436・・・・・・・・・ time=0:1:27
M(36)=10979559944932052584082034521160・・・・・・・・・ time=0:1:51
M(37)=85504296448497664597176138172200・・・・・・・・・ time=0:2:20
M(38)=666342090836575342810869307529640・・・・・・・・・time=0:2:56
M(39)=5196335866734293020072581291205680・・・・・・・・ time=0:3:42
M(40)=40548366159334986692251519592601144・・・・・・・・time=0:4:38
】 * <太郎さんのコメント:八木さんは凄いです。何とn=40まで、求めてあります。後は、何としても規則性を見つけてみたいです。>
NO5<「八木」さん>からの解答 3月29日21時38分受信、3月30日更新
<水の流れ:コメント>N=41から59までの解答です。プログラムがあれば、後はパソコンが計算してくれます。本当に便利ですね。
M(41)=316600984318396358474067788054034792
M(42)=2473440399385321384181863105104711240
M(43)=19334338888097872133851929530263756008
M(44)=151211589346113407153873155612750437984
M(45)=1183201226095769143646013094593076929792
M(46)=9262761619343186896823542620683814327552
M(47)=72547402980720379307408101513774534473600
M(48)=568452882815731546922765274196011792412128
M(49)=4456054722123240923861790762275029981470624
M(50)=34944809867704420868762968362778850357165088
M(51)=274147371430665747033390016677581958159958560
M(52)=2151534123458342115664855183404876911768980800
M(53)=16891531014474743854827700730868265556544402240
M(54)=132660194992052638969652508875883676718351833920
M(55)=1042215716008997256156556500064910970795266407680
M(56)=8190582645372677718998263559678002957579518625920
M(57)=64388345049275795566012972006592224213972237987200
M(58)=506326155840395399722070165469770926974502777284480 :  T=3:7:27
M(59)=3982719132441830391958025714413424756984142532295040 :  T=3:45:12

NO6<「八木」さん>から寄せられたプログラム 4月1日0時22分受信、4月1日更新
<水の流れ:コメント>実は、UBASICを使用したDOSVタイプのを「八木」さんから前日受け取りましたが、開くことができずにいたところ、プログラムをワードの書式で送られてきました。この熱意と情熱に深く感謝します。
10 'asave"mg-2
20 NN=65
30 dim F(NN),G(NN),H(NN)
40 for N=2 to 20
50 clr time
60 N2=N-1:gosub *Enzan:S1=Ss
70 N2=N:gosub *Enzan:S2=Ss*2
80 N2=N+1:gosub *Enzan:S3=Ss
90 Sss=S1+S2+S3
100 print "M(";N;")=";Sss;"time=";time
110 next N
120 end
130 *Enzan
140 for I=1 to N+3:F(I)=0:G(I)=0:H(I)=0:next I
150 Ss=0
160 F(1)=2*N+2-N2
170 F(1)=F(1)-1
180 for I=2 to N2
190 Sf=0:for R=1 to I-1:Sf=Sf+F(R):next R
200 F(I)=min(2*N+I-N2-Sf,F(I-1))
210 next I
220 gosub *Keisuu
230 Ss=Ss+S
240 J=N+1
250 I=I-1
260 if I<1 then 520
270 J=I
280 Fj=F(J)
290 J=J+1
300 if Fj=1 then 250
310 if J>N2 then 250
320 Sa=F(I)-F(J)
330 if Sa<2 then 290
340 if I<2 then 170
350 if Sa>1 then F(I)=F(I)-1
360 Sf=0:for R=1 to I:Sf=Sf+F(R):next R
370 if I>N2-1 then 390
380 for R=(I+1) to N2:F(R)=1:next R
390 Nokori=2*N-Sf-(N2-I)
400 if Nokori=0 then 490
410 if Nokori=1 then F(I+1)=2:goto 490
420 if F(I)=1 then 490
430 Sai=Nokori\(F(I)-1)
440 Dai2=(Nokori)@(F(I)-1)
450 if Sai=0 then 470
460 for R=(I+1) to (I+Sai):F(R)=F(I):next R
470 if Dai2=0 then 490
480 F(I+Sai+1)=Dai2+1
490 gosub *Keisuu
500 Ss=Ss+S
510 goto 240
520 return
530 *Keisuu
540 for I=1 to N+2:G(I)=0:next I
550 H1=!(N2)
560 Kisuu=0:Guusuu=0
570 for I=1 to N+2
580 JJ=F(I)
590 Kisuu=Kisuu+JJ@2
600 if JJ=0 then 620
610 Guusuu=Guusuu+(JJ+1)@2
620 G(JJ)=G(JJ)+1
630 next I
640 K0=2^(Guusuu):K1=!(Kisuu)\((!((Kisuu)\2))^2)
650 Hh=1
660 for K=1 to N+2
670 H(K)=!(G(K))
680 Hh=Hh*H(K)
690 next K
700 S=H1*K0*K1\Hh
710 return

    <自宅>  mizuryu@aqua.ocn.ne.jp