スタート時とゴール時しかAに止まらない /「算数にチャレンジ!!」第1132問

問題概略

1 から 6 までの数が書かれたカードが 1 枚ずつ,計 6 枚あります。

一辺の長さ 1 の正三角形 ABC の頂点 A からスタートして,カードを 1 枚選んでそのカードに書かれた数だけ反時計回りに進みます。どのカードも 1 回しか使いません。

カードがなくなるまでこの操作を続けたとき,スタート時以外に A で止まることが1回しかないようなカードの選び方は何通りあるか求めてください。

http://www.sansu.org/used-html/index1132.html

解説の pdf も作りました。きれいなレイアウトで読みたい方はこちらをどうぞ。

drive.google.com

3で割った余りに注目して数える

周の長さは 3 なので,3 で割った余りに注目します。
引いたカードの数字の和を 3 で割った余りが 0, 1, 2 のときそれぞれ A, B, C に止まります。

1 から 6 までの和は  21=3\times 7 なのでゴール地点は A です。
スタート時以外に A で止まることが 1 回しかないのは,スタート時とゴール時以外は A に止まらないときです。

引いたカードの和を 3 で割った余りが最後以外 0 にならないようなカードの順列の個数が答えです。

1~6 が 1 枚ずつあるのは 0, 1, 2 が 2 枚ずつあるのと同じ。以下,この 6 枚について考えます。

1 枚目は 1 か 2 で,どちらでもいいので 1 の場合を考えて 2 倍することにします。
1 と 2 だけに注目すると 1122, 1212, 1221 の 3 パターンありますが,後ろ 2 つは  1+2\equiv 0\pmod{3} により不適です。

1122 に 0 を 2 つ挿入する方法は  1\{\}1\{\}2\{\}2 \{\} に 0 を 2 つ入れる方法と同じだけあります。
00 というカタマリを入れる方法が 3 通りあり,1 個ずつバラバラに入れる方法が  \mathrm{C}_2=3 通りあるので計 6 通りです。

まとめると 0, 1, 2 の順列が  6\times 2=12 通りあり,0, 1, 2 と 1~6 との対応が  2^3=8 通りあるので,答えは  12\cdot 8=96 通りです。

おまけ:累積和

プログラムを組んで解く場合,これは累積和の問題です。
1~6 の順列のうち,累積和の数列が 3 の倍数を 1 個しか含まないものの個数が答えです。

順列は全部で  6!=720 個しかないので,そのまま全探索できます。mathematicaでやりました。

  In[]:= AbsoluteTiming[
    lst = Mod[#, 3] & /@ (Accumulate /@ Permutations@Range@6);
    ans = Length@Select[lst, Count[#, 0] == 1 &]]
   
  Out[]= {0.0013144, 96}


variee.hatenablog.com